import static org.junit.Assert.*;
-import java.sql.Date;
+import java.io.IOException;
import java.sql.SQLException;
import java.util.Locale;
import org.cacert.gigi.dbObjects.Assurance;
import org.cacert.gigi.dbObjects.Domain;
import org.cacert.gigi.dbObjects.EmailAddress;
+import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.testUtils.ManagedTest;
+import org.cacert.gigi.util.DayDate;
import org.junit.Test;
public class TestUser extends ManagedTest {
@Test
- public void testStoreAndLoad() throws SQLException {
- User u = new User();
- u.setFname("user");
- u.setLname("last");
- u.setMname("");
- u.setSuffix("");
- u.setPreferredLocale(Locale.ENGLISH);
+ public void testStoreAndLoad() throws SQLException, GigiApiException {
long dob = System.currentTimeMillis();
dob -= dob % (1000 * 60 * 60 * 24);
- u.setDob(new java.sql.Date(dob));
- u.setEmail(createUniqueName() + "a@email.org");
- u.insert("password");
+ User u = new User(createUniqueName() + "a@email.org", "password", new Name("user", "last", "", ""), new DayDate(dob), Locale.ENGLISH);
int id = u.getId();
User u2 = User.getById(id);
assertEquals(u.getName(), u2.getName());
- assertEquals(u.getDob().toString(), u2.getDob().toString());
+ assertEquals(u.getDoB().toString(), u2.getDoB().toString());
assertEquals(u.getEmail(), u2.getEmail());
}
public void testWebStoreAndLoad() throws SQLException {
int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
- User u = User.getById(id);
+ Name u = User.getById(id).getName();
+
assertEquals("aä", u.getFname());
assertEquals("b", u.getLname());
assertEquals("", u.getMname());
assertEquals(2, expPoints);
assertTrue(u.hasPassedCATS());
assertEquals(10, u.getMaxAssurePoints());
-
- assertEquals("aä", u.getFname());
- assertEquals("b", u.getLname());
- assertEquals("", u.getMname());
+ Name name = u.getName();
+ assertEquals("aä", name.getFname());
+ assertEquals("b", name.getLname());
+ assertEquals("", name.getMname());
}
@Test
- public void testMatcherMethods() throws SQLException, GigiApiException {
+ public void testMatcherMethods() throws SQLException, GigiApiException, IOException {
String uq = createUniqueName();
int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
User u = User.getById(id);
- new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
- new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
- new Domain(u, uq + "a-testdomain.org").insert();
- new Domain(u, uq + "b-testdomain.org").insert();
- new Domain(u, uq + "c-testdomain.org").insert();
+ new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH);
+ getMailReciever().receive().verify();
+ new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH);
+ getMailReciever().receive();// no-verify
+ verify(new Domain(u, u, uq + "a-testdomain.org"));
+ verify(new Domain(u, u, uq + "b-testdomain.org"));
+ verify(new Domain(u, u, uq + "c-testdomain.org"));
assertEquals(3, u.getEmails().length);
assertEquals(3, u.getDomains().length);
assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
assertTrue(u.isValidEmail(uq + "b@email.org"));
assertFalse(u.isValidEmail(uq + "b+6@email.org"));
assertFalse(u.isValidEmail(uq + "b*@email.org"));
+ assertFalse(u.isValidEmail(uq + "c@email.org"));
assertTrue(u.isValidName("aä b"));
assertFalse(u.isValidName("aä c"));
}
@Test
- public void testDoubleInsert() {
- User u = new User();
- u.setFname("f");
- u.setLname("l");
- u.setMname("m");
- u.setSuffix("s");
- u.setEmail(createUniqueName() + "@example.org");
- u.setDob(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365));
- u.setPreferredLocale(Locale.ENGLISH);
- u.insert(TEST_PASSWORD);
- try {
- u.insert(TEST_PASSWORD);
- fail("Error expected");
- } catch (Error e) {
- // expected
- }
+ public void testDoubleInsert() throws GigiApiException {
+ long d = System.currentTimeMillis();
+ d -= d % DayDate.MILLI_DAY;
+ 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);
Assurance[] ma = u.getMadeAssurances();
Assurance[] ma2 = u.getMadeAssurances();
Assurance[] ra = u.getReceivedAssurances();
assertSame(u, emailUser);
}
+ @Test
+ public void testNoCats() {
+ String email = createUniqueName() + "a@email.org";
+ createVerifiedUser("aä", "b", email, TEST_PASSWORD);
+ User emailUser = User.getByEmail(email);
+ assertFalse(emailUser.hasPassedCATS());
+ }
+
+ @Test
+ public void testGetByMailFail() {
+ String email = createUniqueName() + "d@email.org";
+ User emailUser = User.getByEmail(email);
+ assertNull(emailUser);
+ }
+
}