1   /*
2    * @since 26-Jan-2006
3    */
4   package org.paneris.rimauresq.model.test;
5   
6   import org.melati.poem.AccessToken;
7   import org.melati.poem.PoemTask;
8   import org.melati.poem.UnexpectedExceptionPoemException;
9   import org.paneris.rimauresq.model.RimauresqDatabase;
10  import org.paneris.rimauresq.model.User;
11  import org.paneris.rimauresq.model.UserTable;
12  
13  import junit.framework.TestCase;
14  
15  
16  /**
17   * @author timp@paneris.org
18   *
19   */
20  public class UserTableTest extends TestCase {
21  
22    protected RimauresqDatabase db = null;
23    protected UserTable ut;
24    protected static final String dbUrl = "jdbc:hsqldb:mem:melatijunit";
25  
26    /**
27     * Constructor for UserTableTest.
28     * @param name
29     */
30    public UserTableTest(String name) {
31      super(name);
32    }
33  
34    protected void setUp() {
35      db = new RimauresqDatabase();
36      db.connect("melatijunit", "org.melati.poem.dbms.Hsqldb",
37                 dbUrl, "sa",
38                 "", 4);
39      ut = (UserTable)db.getUserTable();
40  
41    }
42  
43    /*
44     * @see TestCase#tearDown()
45     */
46    protected void tearDown() throws Exception {
47      db.disconnect();
48      super.tearDown();
49    }
50  
51    /**
52     * Test method for 'org.paneris.rimauresq.model.UserTable._newPersistent()'
53     */
54    public void test_newPersistent() {
55      User u = (User)ut.newPersistent();
56      assertTrue(u.troid() == null);
57    }
58  
59    /**
60     * Test user creation.
61     */
62    public void testCreate() {
63      final User u = (User)ut.newPersistent();
64      db.inSession(AccessToken.root, // FIXME
65        new PoemTask() {
66          public void run() {
67            try {
68              u.setName("test");
69              u.setEmail("email");
70              ut.create(u);
71              assertTrue(u.troid().toString().equals(u.getLogin()));
72              assertTrue(u.troid().toString().equals(u.getPassword()));
73            } catch (Exception e) {
74              throw new UnexpectedExceptionPoemException(e);
75            }
76            u.delete();
77          }
78        });
79    }
80  }