1 package org.melati.example.contacts;
2
3 import org.melati.poem.*;
4 import org.melati.poem.test.PoemTestCase;
5
6
7
8
9
10 public class ContactCategoryTableTest extends PoemTestCase {
11 private static String databaseName = "ContactCategoryTableTest";
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
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
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
75
76 public void testEnsure() {
77 Category c = (Category) ((ContactsDatabase) getDb()).getCategoryTable().newPersistent();
78 c.setName("Cat");
79 c.makePersistent();
80 Contact contact = ((ContactsDatabase) getDb()).getContactTable().ensure("Cat", null, "");
81 assertFalse(contact.isIn(c));
82
83 ContactCategory cc = ((ContactsDatabase) getDb()).getContactCategoryTable().ensure(contact, c);
84 assertNotNull(cc);
85
86 ContactCategory cc2 = ((ContactsDatabase) getDb()).getContactCategoryTable().ensure(contact, c);
87 assertNotNull(cc2);
88
89 assertTrue(contact.isIn(c));
90
91 }
92
93 }