]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/TestUser.java
ADD: another user testcase.
[gigi.git] / tests / org / cacert / gigi / TestUser.java
1 package org.cacert.gigi;
2
3 import java.sql.SQLException;
4 import java.util.Locale;
5
6 import org.cacert.gigi.dbObjects.Assurance;
7 import org.cacert.gigi.dbObjects.Domain;
8 import org.cacert.gigi.dbObjects.EmailAddress;
9 import org.cacert.gigi.dbObjects.User;
10 import org.cacert.gigi.localisation.Language;
11 import org.cacert.gigi.testUtils.ManagedTest;
12 import org.junit.Test;
13
14 import static org.junit.Assert.*;
15
16 public class TestUser extends ManagedTest {
17
18     @Test
19     public void testStoreAndLoad() throws SQLException {
20         User u = new User();
21         u.setFname("user");
22         u.setLname("last");
23         u.setMname("");
24         u.setSuffix("");
25         u.setPreferredLocale(Locale.ENGLISH);
26         long dob = System.currentTimeMillis();
27         dob -= dob % (1000 * 60 * 60 * 24);
28         u.setDob(new java.sql.Date(dob));
29         u.setEmail(createUniqueName() + "a@email.org");
30         u.insert("password");
31         int id = u.getId();
32         User u2 = User.getById(id);
33         assertEquals(u, u2);
34     }
35
36     @Test
37     public void testWebStoreAndLoad() throws SQLException {
38         int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
39
40         User u = User.getById(id);
41         assertEquals("aä", u.getFname());
42         assertEquals("b", u.getLname());
43         assertEquals("", u.getMname());
44     }
45
46     @Test
47     public void testAssurerUtilMethods() throws SQLException {
48         int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
49
50         User u = User.getById(id);
51         assertTrue(u.canAssure());
52         int assurancePoints = u.getAssurancePoints();
53         int expPoints = u.getExperiencePoints();
54         assertEquals(100, assurancePoints);
55         assertEquals(2, expPoints);
56         assertTrue(u.hasPassedCATS());
57         assertEquals(10, u.getMaxAssurePoints());
58
59         assertEquals("aä", u.getFname());
60         assertEquals("b", u.getLname());
61         assertEquals("", u.getMname());
62     }
63
64     @Test
65     public void testMatcherMethods() throws SQLException, GigiApiException {
66         String uq = createUniqueName();
67         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
68
69         User u = User.getById(id);
70         new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
71         new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
72         new Domain(u, uq + "a.testdomain.org").insert();
73         new Domain(u, uq + "b.testdomain.org").insert();
74         new Domain(u, uq + "c.testdomain.org").insert();
75         assertEquals(3, u.getEmails().length);
76         assertEquals(3, u.getDomains().length);
77         assertTrue(u.isValidDomain(uq + "a.testdomain.org"));
78         assertTrue(u.isValidDomain(uq + "b.testdomain.org"));
79         assertTrue(u.isValidDomain(uq + "c.testdomain.org"));
80         assertTrue(u.isValidDomain("a." + uq + "a.testdomain.org"));
81         assertTrue(u.isValidDomain("*." + uq + "a.testdomain.org"));
82         assertFalse(u.isValidDomain("a" + uq + "a.testdomain.org"));
83         assertFalse(u.isValidDomain("b" + uq + "a.testdomain.org"));
84
85         assertTrue(u.isValidEmail(uq + "a@email.org"));
86         assertTrue(u.isValidEmail(uq + "b@email.org"));
87         assertFalse(u.isValidEmail(uq + "b+6@email.org"));
88         assertFalse(u.isValidEmail(uq + "b*@email.org"));
89
90         assertTrue(u.isValidName("aä b"));
91         assertFalse(u.isValidName("aä c"));
92         assertFalse(u.isValidName("aä d b"));
93
94     }
95
96     @Test
97     public void testDoubleInsert() {
98         User u = new User();
99         u.setFname("f");
100         u.setLname("l");
101         u.setEmail(createUniqueName() + "@example.org");
102         u.insert(TEST_PASSWORD);
103         try {
104             u.insert(TEST_PASSWORD);
105             fail("Error expected");
106         } catch (Error e) {
107             // expected
108         }
109         Assurance[] ma = u.getMadeAssurances();
110         Assurance[] ma2 = u.getMadeAssurances();
111         Assurance[] ra = u.getReceivedAssurances();
112         Assurance[] ra2 = u.getReceivedAssurances();
113         assertEquals(0, u.getCertificates().length);
114         assertEquals(0, ma.length);
115         assertEquals(0, ma2.length);
116         assertEquals(0, ra.length);
117         assertEquals(0, ra2.length);
118         assertSame(ma, ma2);
119         assertSame(ra, ra2);
120     }
121
122 }