X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FTestUser.java;h=4c22f8138280b8dea10a1fb2574e4a283e1b8467;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hp=5831da1f9a5310616eaac9df15515ae009cf65fa;hpb=785fe6cd9e7c9116b801aafc443b4f090cce870c;p=gigi.git diff --git a/tests/org/cacert/gigi/TestUser.java b/tests/org/cacert/gigi/TestUser.java index 5831da1f..4c22f813 100644 --- a/tests/org/cacert/gigi/TestUser.java +++ b/tests/org/cacert/gigi/TestUser.java @@ -1,87 +1,118 @@ package org.cacert.gigi; +import static org.junit.Assert.*; + +import java.io.IOException; import java.sql.SQLException; +import java.util.Arrays; import java.util.Locale; -import org.cacert.gigi.localisation.Language; -import org.cacert.gigi.testUtils.ManagedTest; +import org.cacert.gigi.dbObjects.Assurance; +import org.cacert.gigi.dbObjects.Assurance.AssuranceType; +import org.cacert.gigi.dbObjects.Country; +import org.cacert.gigi.dbObjects.Country.CountryCodeType; +import org.cacert.gigi.dbObjects.Domain; +import org.cacert.gigi.dbObjects.EmailAddress; +import org.cacert.gigi.dbObjects.Name; +import org.cacert.gigi.dbObjects.NamePart; +import org.cacert.gigi.dbObjects.NamePart.NamePartType; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.testUtils.BusinessTest; +import org.cacert.gigi.util.DayDate; +import org.cacert.gigi.util.Notary; +import org.hamcrest.CoreMatchers; import org.junit.Test; -import static org.junit.Assert.*; - -public class TestUser extends ManagedTest { +public class TestUser extends BusinessTest { @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 = createUser("f", "l", createUniqueName() + "a@email.org", TEST_PASSWORD); int id = u.getId(); - User u2 = new User(id); - assertEquals(u, u2); + User u2 = User.getById(id); + assertEquals(u.getNames()[0], u2.getNames()[0]); + assertEquals(u.getDoB().toString(), u2.getDoB().toString()); + assertEquals(u.getEmail(), u2.getEmail()); } @Test - public void testWebStoreAndLoad() throws SQLException { + public void testWebStoreAndLoad() throws SQLException, GigiApiException { int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD); - User u = new User(id); - assertEquals("aä", u.getFname()); - assertEquals("b", u.getLname()); - assertEquals("", u.getMname()); + Name u = User.getById(id).getNames()[0]; + + assertThat(Arrays.asList(u.getParts()), CoreMatchers.hasItem(new NamePart(NamePartType.FIRST_NAME, "aä"))); + assertThat(Arrays.asList(u.getParts()), CoreMatchers.hasItem(new NamePart(NamePartType.LAST_NAME, "b"))); + assertEquals(2, u.getParts().length); } @Test - public void testAssurerUtilMethods() throws SQLException { + public void testAssurerUtilMethods() throws SQLException, GigiApiException { int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD); - User u = new User(id); + User u = User.getById(id); assertTrue(u.canAssure()); int assurancePoints = u.getAssurancePoints(); int expPoints = u.getExperiencePoints(); assertEquals(100, assurancePoints); - assertEquals(2, expPoints); + assertEquals(User.EXPERIENCE_POINTS, expPoints); assertTrue(u.hasPassedCATS()); assertEquals(10, u.getMaxAssurePoints()); + } + + @Test + public void testMatcherMethodsDomain() throws SQLException, GigiApiException, IOException { + String uq = createUniqueName(); + int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD); - assertEquals("aä", u.getFname()); - assertEquals("b", u.getLname()); - assertEquals("", u.getMname()); + User u = User.getById(id); + 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.getDomains().length); + assertTrue(u.isValidDomain(uq + "a-testdomain.org")); + assertTrue(u.isValidDomain(uq + "b-testdomain.org")); + assertTrue(u.isValidDomain(uq + "c-testdomain.org")); + assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org")); + assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org")); + assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org")); + assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org")); } @Test - public void testMatcherMethods() throws SQLException, GigiApiException { + public void testMatcherMethodsEmail() throws SQLException, GigiApiException, IOException { String uq = createUniqueName(); int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD); - User u = new User(id); - new EmailAddress(uq + "b@email.org", u).insert(Language.getInstance(Locale.ENGLISH)); - new EmailAddress(uq + "c@email.org", u).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(); + User u = User.getById(id); + + new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH); + getMailReceiver().receive().verify(); + new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH); + getMailReceiver().receive();// no-verify assertEquals(3, u.getEmails().length); - assertEquals(3, u.getDomains().length); - assertTrue(u.isValidDomain(uq + "a.testdomain.org")); - assertTrue(u.isValidDomain(uq + "b.testdomain.org")); - assertTrue(u.isValidDomain(uq + "c.testdomain.org")); - assertTrue(u.isValidDomain("a." + uq + "a.testdomain.org")); - assertTrue(u.isValidDomain("*." + uq + "a.testdomain.org")); - assertFalse(u.isValidDomain("a" + uq + "a.testdomain.org")); - assertFalse(u.isValidDomain("b" + uq + "a.testdomain.org")); assertTrue(u.isValidEmail(uq + "a@email.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")); + } + + @Test + public void testMatcherMethodsName() throws SQLException, GigiApiException, IOException { + String uq = createUniqueName(); + int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD); + + User u = User.getById(id); + + User[] us = new User[5]; + for (int i = 0; i < us.length; i++) { + us[i] = User.getById(createAssuranceUser("f", "l", createUniqueName() + "@email.com", TEST_PASSWORD)); + Notary.assure(us[i], u, u.getPreferredName(), u.getDoB(), 10, "here", validVerificationDateString(), AssuranceType.FACE_TO_FACE, Country.getCountryByCode("DE", CountryCodeType.CODE_2_CHARS)); + } assertTrue(u.isValidName("aä b")); assertFalse(u.isValidName("aä c")); @@ -89,4 +120,46 @@ public class TestUser extends ManagedTest { } + @Test + public void testDoubleInsert() throws GigiApiException { + long d = System.currentTimeMillis(); + d -= d % DayDate.MILLI_DAY; + User u = createUser("f", "l", createUniqueName() + "@example.org", TEST_PASSWORD); + Assurance[] ma = u.getMadeAssurances(); + Assurance[] ma2 = u.getMadeAssurances(); + Assurance[] ra = u.getReceivedAssurances(); + Assurance[] ra2 = u.getReceivedAssurances(); + assertEquals(0, u.getCertificates(false).length); + assertEquals(0, ma.length); + assertEquals(0, ma2.length); + assertEquals(0, ra.length); + assertEquals(0, ra2.length); + assertSame(ma, ma2); + assertSame(ra, ra2); + } + + @Test + public void testGetByMail() throws GigiApiException { + String email = createUniqueName() + "a@email.org"; + int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD); + User emailUser = User.getByEmail(email); + User u = User.getById(id); + assertSame(u, emailUser); + } + + @Test + public void testNoCats() throws GigiApiException { + 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); + } + }