also add mail replication test that tests outside of SecurityService context

This commit is contained in:
Fredrik Teschke committed 2015-02-13 20:59:11 +01:00
1 parent 42e1411bb6
commit 1d99e6ba75
4 files changed
+52 -18

No files matched your search

@@ -6,6 +6,8 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Fragment-Host: com.sap.sse.mail
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit4;bundle-version="4.8.2",
Require-Bundle: org.hamcrest;bundle-version="1.1.0",
org.junit4;bundle-version="4.8.2",
com.rabbitmq.client,
com.sap.sse.replication.testsupport
com.sap.sse.replication.testsupport,
com.sap.sse.mail.replication.testsupport
@@ -0,0 +1,28 @@
package com.sap.sse.mail.replication.test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import org.junit.Test;
import com.sap.sse.common.mail.MailException;
import com.sap.sse.mail.MailService;
import com.sap.sse.mail.replication.testsupport.AbstractMailServiceReplicationTest;
public class SimpleMailServiceReplicationTest extends AbstractMailServiceReplicationTest {
@Test
public void testReplicationOfSendMail() throws InterruptedException,
IllegalAccessException, MailException {
MailService master = testSetUp.getMaster();
MailService replica = testSetUp.getReplica();
master.sendMail("test@ing.me", "oh what a beatiful mail", "to be sent on this day");
testSetUp.getReplicaReplicator().waitUntilQueueIsEmpty();
Thread.sleep(3000);
assertThat("mail was not sent on replica",
AbstractMailServiceReplicationTest.numberOfMailsSent.get(replica), equalTo(null));
assertThat("mail was sent on master",
AbstractMailServiceReplicationTest.numberOfMailsSent.get(master), equalTo(1));
}
}
@@ -11,15 +11,15 @@ import com.sap.sse.mail.impl.MailServiceImpl;
import com.sap.sse.replication.testsupport.AbstractServerReplicationTestSetUp;
import com.sap.sse.replication.testsupport.AbstractServerWithSingleServiceReplicationTest;
public class AbstractMailReplicationTest extends AbstractServerWithSingleServiceReplicationTest<MailService, MailServiceImpl> {
public AbstractMailReplicationTest() {
public class AbstractMailServiceReplicationTest extends AbstractServerWithSingleServiceReplicationTest<MailService, MailServiceImpl> {
public AbstractMailServiceReplicationTest() {
super(new MailServerReplicationTestSetUp());
}
public static final Map<MailServiceImpl, Integer> numberOfMailsSent = new HashMap<>();
@Before
public void setUp() {
public void clearNumberOfMailsSent() {
numberOfMailsSent.clear();
}
@@ -16,7 +16,7 @@ import org.osgi.util.tracker.ServiceTracker;
import com.sap.sse.common.mail.MailException;
import com.sap.sse.mail.MailService;
import com.sap.sse.mail.impl.MailServiceImpl;
import com.sap.sse.mail.replication.testsupport.AbstractMailReplicationTest;
import com.sap.sse.mail.replication.testsupport.AbstractMailServiceReplicationTest;
import com.sap.sse.replication.testsupport.AbstractServerWithMultipleServicesReplicationTest;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.impl.SecurityServiceImpl;
@@ -29,21 +29,22 @@ import com.sap.sse.security.userstore.mongodb.UserStoreImpl;
* @author Fredrik Teschke
*/
public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractServerWithMultipleServicesReplicationTest {
private static final SecurityServerReplicationTestSetUp securitySetUp = new SecurityServerReplicationTestSetUp();
private static final MailServerReplicationTestSetUp mailSetUp = new MailServerReplicationTestSetUp();
private final SecurityServerReplicationTestSetUp securitySetUp = new SecurityServerReplicationTestSetUp();
private final MailServerReplicationTestSetUp mailSetUp = new MailServerReplicationTestSetUp();
private static MailServiceImpl masterMailService;
private static MailServiceImpl replicaMailService;
private MailServiceImpl masterMailService;
private MailServiceImpl replicaMailService;
@Before
@Override
public void setUp() throws Exception {
masterMailService = AbstractMailReplicationTest.createMailCountingService(true);
replicaMailService = AbstractMailReplicationTest.createMailCountingService(false);
masterMailService = AbstractMailServiceReplicationTest.createMailCountingService(true);
replicaMailService = AbstractMailServiceReplicationTest.createMailCountingService(false);
AbstractMailServiceReplicationTest.numberOfMailsSent.clear();
super.setUp();
}
private static class SecurityServerReplicationTestSetUp extends
private class SecurityServerReplicationTestSetUp extends
AbstractSecurityReplicationTest.SecurityServerReplicationTestSetUp {
@Override
protected SecurityServiceImpl createNewMaster() throws MalformedURLException, IOException, InterruptedException {
@@ -65,7 +66,7 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
}
}
private static class MailServerReplicationTestSetUp extends AbstractMailReplicationTest.MailServerReplicationTestSetUp {
private class MailServerReplicationTestSetUp extends AbstractMailServiceReplicationTest.MailServerReplicationTestSetUp {
private static final int SERVLET_PORT = 9991;
public MailServerReplicationTestSetUp() {
@@ -95,6 +96,9 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
@Test
public void triggerEmailSendByAddingUserOnMaster()
throws UserManagementException, MailException, IllegalAccessException, InterruptedException {
//TODO IllegalStateExceptions thrown, probably because the two replication services per instance share the
//same message queue, but don't know about each other (unlike actual OSGi setup, where there is only
//one replication service per instance that nows all Replicables)
SecurityService masterSecurityService = securitySetUp.getMaster();
final String username = "Ernie";
@@ -111,9 +115,9 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
Thread.sleep(3000);
assertThat("mail was not sent on replica",
AbstractMailReplicationTest.numberOfMailsSent.get(replicaMailService), equalTo(null));
AbstractMailServiceReplicationTest.numberOfMailsSent.get(replicaMailService), equalTo(null));
assertThat("mail was sent on master",
AbstractMailReplicationTest.numberOfMailsSent.get(masterMailService), equalTo(1));
AbstractMailServiceReplicationTest.numberOfMailsSent.get(masterMailService), equalTo(1));
}
@@ -141,8 +145,8 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
Thread.sleep(3000);
assertThat("mail was not sent on replica",
AbstractMailReplicationTest.numberOfMailsSent.get(replicaMailService), equalTo(null));
AbstractMailServiceReplicationTest.numberOfMailsSent.get(replicaMailService), equalTo(null));
assertThat("mail was sent on master",
AbstractMailReplicationTest.numberOfMailsSent.get(masterMailService), equalTo(1));
AbstractMailServiceReplicationTest.numberOfMailsSent.get(masterMailService), equalTo(1));
}
}