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