]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/TestUser.java
Merge "Suggestions to enhance the SQL call pattern."
[gigi.git] / tests / org / cacert / gigi / TestUser.java
1 package org.cacert.gigi;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.sql.SQLException;
7 import java.util.Locale;
8
9 import org.cacert.gigi.dbObjects.Assurance;
10 import org.cacert.gigi.dbObjects.Domain;
11 import org.cacert.gigi.dbObjects.EmailAddress;
12 import org.cacert.gigi.dbObjects.Name;
13 import org.cacert.gigi.dbObjects.User;
14 import org.cacert.gigi.testUtils.ManagedTest;
15 import org.cacert.gigi.util.DayDate;
16 import org.junit.Test;
17
18 public class TestUser extends ManagedTest {
19
20     @Test
21     public void testStoreAndLoad() throws SQLException, GigiApiException {
22         long dob = System.currentTimeMillis();
23         dob -= dob % (1000 * 60 * 60 * 24);
24         User u = new User(createUniqueName() + "a@email.org", "password", new Name("user", "last", "", ""), new DayDate(dob), Locale.ENGLISH);
25         int id = u.getId();
26         User u2 = User.getById(id);
27         assertEquals(u.getName(), u2.getName());
28         assertEquals(u.getDoB().toString(), u2.getDoB().toString());
29         assertEquals(u.getEmail(), u2.getEmail());
30     }
31
32     @Test
33     public void testWebStoreAndLoad() throws SQLException {
34         int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
35
36         Name u = User.getById(id).getName();
37
38         assertEquals("aä", u.getFname());
39         assertEquals("b", u.getLname());
40         assertEquals("", u.getMname());
41     }
42
43     @Test
44     public void testAssurerUtilMethods() throws SQLException {
45         int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
46
47         User u = User.getById(id);
48         assertTrue(u.canAssure());
49         int assurancePoints = u.getAssurancePoints();
50         int expPoints = u.getExperiencePoints();
51         assertEquals(100, assurancePoints);
52         assertEquals(2, expPoints);
53         assertTrue(u.hasPassedCATS());
54         assertEquals(10, u.getMaxAssurePoints());
55         Name name = u.getName();
56         assertEquals("aä", name.getFname());
57         assertEquals("b", name.getLname());
58         assertEquals("", name.getMname());
59     }
60
61     @Test
62     public void testMatcherMethods() throws SQLException, GigiApiException, IOException {
63         String uq = createUniqueName();
64         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
65
66         User u = User.getById(id);
67         new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH);
68         getMailReciever().receive().verify();
69         new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH);
70         getMailReciever().receive();// no-verify
71         verify(new Domain(u, u, uq + "a-testdomain.org"));
72         verify(new Domain(u, u, uq + "b-testdomain.org"));
73         verify(new Domain(u, u, uq + "c-testdomain.org"));
74         assertEquals(3, u.getEmails().length);
75         assertEquals(3, u.getDomains().length);
76         assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
77         assertTrue(u.isValidDomain(uq + "b-testdomain.org"));
78         assertTrue(u.isValidDomain(uq + "c-testdomain.org"));
79         assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org"));
80         assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org"));
81         assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org"));
82         assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org"));
83
84         assertTrue(u.isValidEmail(uq + "a@email.org"));
85         assertTrue(u.isValidEmail(uq + "b@email.org"));
86         assertFalse(u.isValidEmail(uq + "b+6@email.org"));
87         assertFalse(u.isValidEmail(uq + "b*@email.org"));
88         assertFalse(u.isValidEmail(uq + "c@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() throws GigiApiException {
98         long d = System.currentTimeMillis();
99         d -= d % DayDate.MILLI_DAY;
100         User u = new User(createUniqueName() + "@example.org", TEST_PASSWORD, new Name("f", "k", "m", "s"), new DayDate(d + 1000L * 60 * 60 * 24 * 365), Locale.ENGLISH);
101         Assurance[] ma = u.getMadeAssurances();
102         Assurance[] ma2 = u.getMadeAssurances();
103         Assurance[] ra = u.getReceivedAssurances();
104         Assurance[] ra2 = u.getReceivedAssurances();
105         assertEquals(0, u.getCertificates(false).length);
106         assertEquals(0, ma.length);
107         assertEquals(0, ma2.length);
108         assertEquals(0, ra.length);
109         assertEquals(0, ra2.length);
110         assertSame(ma, ma2);
111         assertSame(ra, ra2);
112     }
113
114     @Test
115     public void testGetByMail() {
116         String email = createUniqueName() + "a@email.org";
117         int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
118         User emailUser = User.getByEmail(email);
119         User u = User.getById(id);
120         assertSame(u, emailUser);
121     }
122
123     @Test
124     public void testNoCats() {
125         String email = createUniqueName() + "a@email.org";
126         createVerifiedUser("aä", "b", email, TEST_PASSWORD);
127         User emailUser = User.getByEmail(email);
128         assertFalse(emailUser.hasPassedCATS());
129     }
130
131     @Test
132     public void testGetByMailFail() {
133         String email = createUniqueName() + "d@email.org";
134         User emailUser = User.getByEmail(email);
135         assertNull(emailUser);
136     }
137
138 }