| 1 5 package com.tctest.spring.integrationtests.tests; 6 7 import com.tctest.spring.bean.EventManager; 8 import com.tctest.spring.integrationtests.framework.AbstractTwoServerDeploymentTest; 9 import com.tctest.spring.integrationtests.framework.DeploymentBuilder; 10 import com.tctest.spring.integrationtests.framework.TestCallback; 11 12 import junit.framework.Test; 13 14 15 public class DistributedEventsTest extends AbstractTwoServerDeploymentTest { 16 17 private static final String REMOTE_SERVICE_NAME = "EventManager"; 18 19 private static EventManager eventManager1; 20 private static EventManager eventManager2; 21 22 26 protected void setUp() throws Exception { 27 super.setUp(); 28 eventManager1.clear(); 29 eventManager2.clear(); 30 assertEquals(0, eventManager1.size()); 31 assertEquals(0, eventManager2.size()); 32 } 33 34 public void testDistributedEvent() throws Throwable { 35 eventManager1.publishEvents("foo1", "bar1", 3); 36 eventManager1.publishEvents("foo1", "bar2", 4); 37 38 waitForSuccess(60 * 3, new TestCallback() { 39 public void check() { 40 assertEquals("Got local", 7, eventManager1.size()); 41 assertEquals("Should be distributed", 7, eventManager2.size()); 42 } 43 }); 44 } 45 46 public void testNonDistributedEvent() throws Throwable { 47 eventManager1.publishLocalEvent("foo2", "bar1"); 48 Thread.sleep(1000L * 5); 49 assertEquals("Got local", 1, eventManager1.size()); 50 assertEquals("Should not be distributed", 0, eventManager2.size()); 51 } 52 53 private static class SingletonTestSetup extends TwoSvrSetup { 54 55 private SingletonTestSetup() { 56 super(DistributedEventsTest.class, "/tc-config-files/event-tc-config.xml", "distributed-events"); 57 } 58 59 protected void setUp() throws Exception { 60 super.setUp(); 61 62 eventManager1 = (EventManager) server1.getProxy(EventManager.class, REMOTE_SERVICE_NAME); 63 eventManager2 = (EventManager) server2.getProxy(EventManager.class, REMOTE_SERVICE_NAME); 64 } 65 66 protected void configureWar(DeploymentBuilder builder) { 67 builder.addBeanDefinitionFile("classpath:/com/tctest/spring/distributedevents.xml"); 68 builder.addRemoteService(REMOTE_SERVICE_NAME, "eventManager", EventManager.class); 69 } 70 71 } 72 73 public static Test suite() { 74 return new SingletonTestSetup(); 75 } 76 } 77 | Popular Tags |