]> WPIA git - gigi.git/blobdiff - tests/club/wpia/gigi/testUtils/BusinessTest.java
Merge changes If5eed01f,I88c94e39,If36f5b0a
[gigi.git] / tests / club / wpia / gigi / testUtils / BusinessTest.java
index 31d3b09408caedb6cc9712db04580d39b0599715..4566d0e1f34391f5e6b46533e041bd49381e46ca 100644 (file)
@@ -22,8 +22,8 @@ import club.wpia.gigi.dbObjects.Domain;
 import club.wpia.gigi.dbObjects.EmailAddress;
 import club.wpia.gigi.dbObjects.Group;
 import club.wpia.gigi.dbObjects.NamePart;
-import club.wpia.gigi.dbObjects.User;
 import club.wpia.gigi.dbObjects.NamePart.NamePartType;
+import club.wpia.gigi.dbObjects.User;
 import club.wpia.gigi.email.EmailProvider;
 import club.wpia.gigi.ping.PingerDaemon;
 import club.wpia.gigi.testUtils.TestEmailReceiver.TestMail;
@@ -70,17 +70,25 @@ public abstract class BusinessTest extends ConfiguredTest {
         }
 
         @Override
-        public void clearMails() {
+        public void assertEmpty() {
             mails.clear();
         }
 
         @Override
-        public TestMail receive() {
+        public TestMail receive(String to) {
+            TestMail poll;
             try {
-                return mails.poll(30, TimeUnit.SECONDS);
+                poll = mails.poll(30, TimeUnit.SECONDS);
             } catch (InterruptedException e) {
                 throw new Error(e);
             }
+            if (poll == null) {
+                throw new AssertionError("Mail receiving timed out");
+            }
+            if (to != null) {
+                assertEquals(to, poll.getTo());
+            }
+            return poll;
         }
 
         @Override
@@ -94,7 +102,7 @@ public abstract class BusinessTest extends ConfiguredTest {
         }
 
         @Override
-        public TestMail poll() {
+        public TestMail poll(String to) {
             throw new Error("Currently unimplemented");
         }
 
@@ -175,4 +183,13 @@ public abstract class BusinessTest extends ConfiguredTest {
         supporter.refreshGroups();
         return supporter;
     }
+
+    public EmailAddress createVerifiedEmail(User u, String email) throws InterruptedException, GigiApiException {
+        EmailAddress addr = new EmailAddress(u, email, Locale.ENGLISH);
+        TestMail testMail = getMailReceiver().receive(addr.getAddress());
+        String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1);
+        addr.verify(hash);
+        getMailReceiver().assertEmpty();
+        return addr;
+    }
 }