]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/TestUser.java
upd: rename package name and all references to it
[gigi.git] / tests / club / wpia / gigi / TestUser.java
1 package club.wpia.gigi;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.sql.SQLException;
7 import java.util.Arrays;
8 import java.util.Locale;
9
10 import org.hamcrest.CoreMatchers;
11 import org.junit.Test;
12
13 import club.wpia.gigi.dbObjects.Assurance;
14 import club.wpia.gigi.dbObjects.Assurance.AssuranceType;
15 import club.wpia.gigi.dbObjects.Country;
16 import club.wpia.gigi.dbObjects.Country.CountryCodeType;
17 import club.wpia.gigi.dbObjects.Domain;
18 import club.wpia.gigi.dbObjects.EmailAddress;
19 import club.wpia.gigi.dbObjects.Name;
20 import club.wpia.gigi.dbObjects.NamePart;
21 import club.wpia.gigi.dbObjects.NamePart.NamePartType;
22 import club.wpia.gigi.dbObjects.User;
23 import club.wpia.gigi.testUtils.BusinessTest;
24 import club.wpia.gigi.util.DayDate;
25 import club.wpia.gigi.util.Notary;
26
27 public class TestUser extends BusinessTest {
28
29     @Test
30     public void testStoreAndLoad() throws SQLException, GigiApiException {
31         long dob = System.currentTimeMillis();
32         dob -= dob % (1000 * 60 * 60 * 24);
33         User u = createUser("f", "l", createUniqueName() + "a@email.org", TEST_PASSWORD);
34         int id = u.getId();
35         User u2 = User.getById(id);
36         assertEquals(u.getNames()[0], u2.getNames()[0]);
37         assertEquals(u.getDoB().toString(), u2.getDoB().toString());
38         assertEquals(u.getEmail(), u2.getEmail());
39     }
40
41     @Test
42     public void testWebStoreAndLoad() throws SQLException, GigiApiException {
43         int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
44
45         Name u = User.getById(id).getNames()[0];
46
47         assertThat(Arrays.asList(u.getParts()), CoreMatchers.hasItem(new NamePart(NamePartType.FIRST_NAME, "aä")));
48         assertThat(Arrays.asList(u.getParts()), CoreMatchers.hasItem(new NamePart(NamePartType.LAST_NAME, "b")));
49         assertEquals(2, u.getParts().length);
50     }
51
52     @Test
53     public void testAssurerUtilMethods() throws SQLException, GigiApiException {
54         int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
55
56         User u = User.getById(id);
57         assertTrue(u.canAssure());
58         int assurancePoints = u.getAssurancePoints();
59         int expPoints = u.getExperiencePoints();
60         assertEquals(100, assurancePoints);
61         assertEquals(User.EXPERIENCE_POINTS, expPoints);
62         assertTrue(u.hasPassedCATS());
63         assertEquals(10, u.getMaxAssurePoints());
64     }
65
66     @Test
67     public void testMatcherMethodsDomain() throws SQLException, GigiApiException, IOException {
68         String uq = createUniqueName();
69         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
70
71         User u = User.getById(id);
72         verify(new Domain(u, u, uq + "a-testdomain.org"));
73         verify(new Domain(u, u, uq + "b-testdomain.org"));
74         verify(new Domain(u, u, uq + "c-testdomain.org"));
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
85     @Test
86     public void testMatcherMethodsEmail() throws SQLException, GigiApiException, IOException {
87         String uq = createUniqueName();
88         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
89
90         User u = User.getById(id);
91
92         new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH);
93         getMailReceiver().receive().verify();
94         new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH);
95         getMailReceiver().receive();// no-verify
96         assertEquals(3, u.getEmails().length);
97
98         assertTrue(u.isValidEmail(uq + "a@email.org"));
99         assertTrue(u.isValidEmail(uq + "b@email.org"));
100         assertFalse(u.isValidEmail(uq + "b+6@email.org"));
101         assertFalse(u.isValidEmail(uq + "b*@email.org"));
102         assertFalse(u.isValidEmail(uq + "c@email.org"));
103     }
104
105     @Test
106     public void testMatcherMethodsName() throws SQLException, GigiApiException, IOException {
107         String uq = createUniqueName();
108         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
109
110         User u = User.getById(id);
111
112         User[] us = new User[5];
113         for (int i = 0; i < us.length; i++) {
114             us[i] = User.getById(createAssuranceUser("f", "l", createUniqueName() + "@email.com", TEST_PASSWORD));
115             Notary.assure(us[i], u, u.getPreferredName(), u.getDoB(), 10, "here", validVerificationDateString(), AssuranceType.FACE_TO_FACE, Country.getCountryByCode("DE", CountryCodeType.CODE_2_CHARS));
116         }
117
118         assertTrue(u.isValidName("aä b"));
119         assertFalse(u.isValidName("aä c"));
120         assertFalse(u.isValidName("aä d b"));
121
122     }
123
124     @Test
125     public void testDoubleInsert() throws GigiApiException {
126         long d = System.currentTimeMillis();
127         d -= d % DayDate.MILLI_DAY;
128         User u = createUser("f", "l", createUniqueName() + "@example.org", TEST_PASSWORD);
129         Assurance[] ma = u.getMadeAssurances();
130         Assurance[] ma2 = u.getMadeAssurances();
131         Assurance[] ra = u.getReceivedAssurances();
132         Assurance[] ra2 = u.getReceivedAssurances();
133         assertEquals(0, u.getCertificates(false).length);
134         assertEquals(0, ma.length);
135         assertEquals(0, ma2.length);
136         assertEquals(0, ra.length);
137         assertEquals(0, ra2.length);
138         assertSame(ma, ma2);
139         assertSame(ra, ra2);
140     }
141
142     @Test
143     public void testGetByMail() throws GigiApiException {
144         String email = createUniqueName() + "a@email.org";
145         int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
146         User emailUser = User.getByEmail(email);
147         User u = User.getById(id);
148         assertSame(u, emailUser);
149     }
150
151     @Test
152     public void testNoCats() throws GigiApiException {
153         String email = createUniqueName() + "a@email.org";
154         createVerifiedUser("aä", "b", email, TEST_PASSWORD);
155         User emailUser = User.getByEmail(email);
156         assertFalse(emailUser.hasPassedCATS());
157     }
158
159     @Test
160     public void testGetByMailFail() {
161         String email = createUniqueName() + "d@email.org";
162         User emailUser = User.getByEmail(email);
163         assertNull(emailUser);
164     }
165
166 }