View Javadoc
1   package org.melati.example.contacts;
2   
3   import org.melati.poem.*;
4   import org.melati.poem.test.PoemTestCase;
5   
6   /**
7    * @author timp
8    * @since 2017-10-18
9    */
10  public class CategoryTableTest extends PoemTestCase {
11    private static String databaseName = "CategoryTableTest";
12  
13  
14    protected void setUp() throws Exception {
15      super.setUp();
16      User guestUser = getDb().getUserTable().guestUser();
17      setUserToRunAs(guestUser);
18      getDb().inSession(AccessToken.root,
19          new PoemTask() {
20            public void run() {
21              try {
22                PoemThread.commit();
23              } catch (Throwable e) {
24                throw new RuntimeException(e);
25              }
26            }
27          });
28  
29    }
30  
31    protected void tearDown() throws Exception {
32      super.tearDown();
33    }
34  
35    /**
36     * @return Returns the dbName.
37     */
38    protected String getDbName() {
39      return databaseName;
40    }
41  
42    public Database getDb(String dbNameP) {
43      if (dbNameP == null)
44        throw new NullPointerException();
45      return getPoemDatabase();
46    }
47  
48    /**
49     * @return a db
50     */
51    public Database getPoemDatabase() {
52      maxTrans = 4;
53      return PoemDatabaseFactory.getDatabase(getDbName(),
54          "jdbc:hsqldb:mem:" + getDbName(),
55          "sa",
56          "", "org.melati.example.contacts.ContactsDatabase",
57          "org.melati.poem.dbms.Hsqldb", false, false, false, 4);
58    }
59  
60    protected void databaseUnchanged() {
61      assertEquals("Setting changed", 0, getDb().getSettingTable().count());
62      assertEquals("Group changed", 1, getDb().getGroupTable().count());
63      assertEquals("GroupMembership changed", 1, getDb().getGroupMembershipTable().count());
64      assertEquals("Capability changed", 5, getDb().getCapabilityTable().count());
65      assertEquals("GroupCapability changed", 1, getDb().getGroupCapabilityTable().count());
66      assertEquals("TableCategory changed", 5, getDb().getTableCategoryTable().count());
67      assertEquals("User changed", 2, getDb().getUserTable().count());
68      assertEquals("ColumnInfo changed", 81, getDb().getColumnInfoTable().count());
69      assertEquals("TableInfo changed", 12, getDb().getTableInfoTable().count());
70      checkTablesAndColumns(12, 81);
71    }
72  
73    /**
74     * Test setOwner.
75     */
76    public void testEnsure() {
77      Category c = (Category) ((ContactsDatabase) getDb()).getCategoryTable().newPersistent();
78      c.setName("Cat1");
79      c.makePersistent();
80      Category c2 = ((ContactsDatabase) getDb()).getCategoryTable()
81          .ensure("Cat1");
82      assertEquals(c, c2);
83      Category d = ((ContactsDatabase) getDb()).getCategoryTable().ensure("Dog");
84      assertNotNull(d);
85      c.delete();
86      d.delete();
87    }
88  
89  }