View Javadoc

1   package org.melati.admin.test;
2   
3   
4   import junit.framework.TestCase;
5   
6   import org.melati.LogicalDatabase;
7   import org.melati.admin.AnticipatedException;
8   import org.melati.admin.Copy;
9   import org.melati.poem.PoemTask;
10  import org.melati.poem.test.Dynamic;
11  import org.melati.poem.test.EverythingDatabase;
12  import org.melati.poem.test.StringField;
13  
14  /**
15   * Test Copy.
16   */
17  public class CopyTest extends TestCase {
18    /**
19     * Constructor for CopyTest.
20     * @param name
21     */
22    public CopyTest(String name) {
23      super(name);
24    }
25  
26    /**
27     * @see junit.framework.TestCase#setUp()
28     */
29    protected void setUp() throws Exception {
30    }
31  
32    /**
33     * @see junit.framework.TestCase#tearDown()
34     */
35    protected void tearDown() throws Exception {
36    }
37  
38    /**
39     * 
40     */
41    public void testCopyDissimilarDbs() { 
42      try { 
43        Copy.copy("everything", "melatitest");
44        fail("Should have bombed");
45      } catch (AnticipatedException e) { 
46        e = null;
47      }
48    }
49    
50    /**
51     * 
52     */
53    public void testRecordsActuallyCopied() {
54      final EverythingDatabase edb = (EverythingDatabase)LogicalDatabase.getDatabase("everything");
55      final EverythingDatabase edb2 = (EverythingDatabase)LogicalDatabase.getDatabase("everything2");
56      System.err.println("From " + edb);
57      System.err.println("To " + edb2);
58      System.err.println("");
59      edb.inSessionAsRoot( 
60          new PoemTask() {
61            public void run() {
62            StringField p = (StringField)(edb).getStringFieldTable().newPersistent();
63              p.setStringfield("1");
64              p.makePersistent();
65              assertEquals(1, edb.getStringFieldTable().count());
66            }
67          });
68      Copy.copy(edb, edb2);
69      edb2.inSessionAsRoot( 
70          new PoemTask() {
71            public void run() {
72              assertEquals(1, edb2.getStringFieldTable().count());
73            }
74          });
75    }
76      
77    /**
78     * 
79     */
80    public void  testRecordsNotCopiedIfAnyPresent() {
81      final EverythingDatabase edb = (EverythingDatabase)LogicalDatabase.getDatabase("everything");
82      final EverythingDatabase edb2 = (EverythingDatabase)LogicalDatabase.getDatabase("everything2");
83      System.err.println("From " + edb);
84      System.err.println("To " + edb2);
85      System.err.println("");
86      edb.inSessionAsRoot( 
87          new PoemTask() {
88            public void run() {
89              Dynamic p = (Dynamic)(edb).getDynamicTable().newPersistent();
90              p.setName("1");
91              p.makePersistent();
92              assertEquals(3, edb.getDynamicTable().count());
93            }
94          });
95      Copy.copy(edb, edb2);
96      edb2.inSessionAsRoot( 
97          new PoemTask() {
98            public void run() {
99              assertEquals(2, edb2.getDynamicTable().count());
100           }
101         });
102   }
103     
104 }