1 package org.cacert.gigi;
3 import java.sql.SQLException;
4 import java.util.Locale;
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;
14 import static org.junit.Assert.*;
16 public class TestUser extends ManagedTest {
19 public void testStoreAndLoad() throws SQLException {
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");
32 User u2 = User.getById(id);
37 public void testWebStoreAndLoad() throws SQLException {
38 int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
40 User u = User.getById(id);
41 assertEquals("aä", u.getFname());
42 assertEquals("b", u.getLname());
43 assertEquals("", u.getMname());
47 public void testAssurerUtilMethods() throws SQLException {
48 int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
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());
59 assertEquals("aä", u.getFname());
60 assertEquals("b", u.getLname());
61 assertEquals("", u.getMname());
65 public void testMatcherMethods() throws SQLException, GigiApiException {
66 String uq = createUniqueName();
67 int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
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"));
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"));
90 assertTrue(u.isValidName("aä b"));
91 assertFalse(u.isValidName("aä c"));
92 assertFalse(u.isValidName("aä d b"));
97 public void testDoubleInsert() {
101 u.setEmail(createUniqueName() + "@example.org");
102 u.insert(TEST_PASSWORD);
104 u.insert(TEST_PASSWORD);
105 fail("Error expected");
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);