You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/01/31 13:03:04 UTC

aries-rsa git commit: [ARIES-1763] Simplify EventProducerTest

Repository: aries-rsa
Updated Branches:
  refs/heads/master d6b354daf -> f1edbeeda


[ARIES-1763] Simplify EventProducerTest


Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/f1edbeed
Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/f1edbeed
Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/f1edbeed

Branch: refs/heads/master
Commit: f1edbeedaf2d176692d7d67d648a5dd97dabcf38
Parents: d6b354d
Author: Christian Schneider <cs...@adobe.com>
Authored: Wed Jan 31 12:42:05 2018 +0100
Committer: Christian Schneider <cs...@adobe.com>
Committed: Wed Jan 31 12:42:05 2018 +0100

----------------------------------------------------------------------
 .../aries/rsa/core/event/EventProducerTest.java | 194 +++++++++----------
 1 file changed, 91 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/f1edbeed/rsa/src/test/java/org/apache/aries/rsa/core/event/EventProducerTest.java
----------------------------------------------------------------------
diff --git a/rsa/src/test/java/org/apache/aries/rsa/core/event/EventProducerTest.java b/rsa/src/test/java/org/apache/aries/rsa/core/event/EventProducerTest.java
index 6bb693e..5703580 100644
--- a/rsa/src/test/java/org/apache/aries/rsa/core/event/EventProducerTest.java
+++ b/rsa/src/test/java/org/apache/aries/rsa/core/event/EventProducerTest.java
@@ -18,149 +18,137 @@
  */
 package org.apache.aries.rsa.core.event;
 
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+
 import java.util.Arrays;
 import java.util.Dictionary;
+import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import org.apache.aries.rsa.core.ExportRegistrationImpl;
 import org.apache.aries.rsa.core.RemoteServiceAdminCore;
-import org.apache.aries.rsa.core.event.EventProducer;
 import org.apache.aries.rsa.spi.Endpoint;
+import org.easymock.Capture;
 import org.easymock.EasyMock;
-import org.easymock.IAnswer;
+import org.easymock.IMocksControl;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.remoteserviceadmin.EndpointDescription;
 import org.osgi.service.remoteserviceadmin.ExportReference;
 import org.osgi.service.remoteserviceadmin.ExportRegistration;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
 import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent;
 import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
 
 @SuppressWarnings({"rawtypes", "unchecked"})
 public class EventProducerTest {
     
+    private IMocksControl c;
+    private RemoteServiceAdminCore rsaCore;
+    private Capture<RemoteServiceAdminEvent> capturedEvent;
+    private Bundle bundle;
+    private BundleContext bc;
+
+    @Before
+    public void before() throws InvalidSyntaxException {
+        c = EasyMock.createNiceControl();
+        rsaCore = c.createMock(RemoteServiceAdminCore.class);
+        capturedEvent = EasyMock.newCapture();
+        bundle = createBundle();
+        bc = bundleContextWithRsal(bundle);
+    }
     
     @Test
     public void testPublishNotification() throws Exception {
-        RemoteServiceAdminCore rsaCore = EasyMock.createNiceMock(RemoteServiceAdminCore.class);
-        EasyMock.replay(rsaCore);
+        final EndpointDescription epd = dummyEndpoint();
+        Endpoint endpoint = c.createMock(Endpoint.class);
+        expect(endpoint.description()).andReturn(epd);
 
-        final EndpointDescription epd = EasyMock.createNiceMock(EndpointDescription.class);
-        EasyMock.expect(epd.getServiceId()).andReturn(Long.MAX_VALUE).anyTimes();
-        final String uuid = UUID.randomUUID().toString();
-        EasyMock.expect(epd.getFrameworkUUID()).andReturn(uuid).anyTimes();
-        EasyMock.expect(epd.getId()).andReturn("foo://bar").anyTimes();
-        final List<String> interfaces = Arrays.asList("org.foo.Bar", "org.boo.Far");
-        EasyMock.expect(epd.getInterfaces()).andReturn(interfaces).anyTimes();
-        EasyMock.expect(epd.getConfigurationTypes()).andReturn(Arrays.asList("org.apache.cxf.ws")).anyTimes();
-        EasyMock.replay(epd);
-        final ServiceReference sref = EasyMock.createNiceMock(ServiceReference.class);
-        EasyMock.replay(sref);
-
-        final Bundle bundle = EasyMock.createNiceMock(Bundle.class);
-        EasyMock.expect(bundle.getBundleId()).andReturn(42L).anyTimes();
-        EasyMock.expect(bundle.getSymbolicName()).andReturn("test.bundle").anyTimes();
-        Dictionary<String, String> headers = new Hashtable<String, String>();
-        headers.put("Bundle-Version", "1.2.3.test");
-        EasyMock.expect(bundle.getHeaders()).andReturn(headers).anyTimes();
-        EasyMock.replay(bundle);
-
-        RemoteServiceAdminListener rsal = EasyMock.createNiceMock(RemoteServiceAdminListener.class);
-        rsal.remoteAdminEvent((RemoteServiceAdminEvent) EasyMock.anyObject());
-        EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
-            @Override
-            public Object answer() throws Throwable {
-                RemoteServiceAdminEvent rsae = (RemoteServiceAdminEvent) EasyMock.getCurrentArguments()[0];
-                Assert.assertNull(rsae.getException());
-                Assert.assertEquals(RemoteServiceAdminEvent.EXPORT_REGISTRATION, rsae.getType());
-                Assert.assertSame(bundle, rsae.getSource());
-                ExportReference er = rsae.getExportReference();
-                Assert.assertSame(epd, er.getExportedEndpoint());
-                Assert.assertSame(sref, er.getExportedService());
-
-                return null;
-            }
-        });
-        EasyMock.replay(rsal);
-
-        ServiceReference rsalSref = EasyMock.createNiceMock(ServiceReference.class);
-        EasyMock.expect(rsalSref.getBundle()).andReturn(bundle).anyTimes();
-        EasyMock.replay(rsalSref);
-
-        BundleContext bc = EasyMock.createNiceMock(BundleContext.class);
-        EasyMock.expect(bc.getBundle()).andReturn(bundle).anyTimes();
-        EasyMock.expect(bc.getServiceReferences(RemoteServiceAdminListener.class.getName(), null))
-                .andReturn(new ServiceReference[] {rsalSref}).anyTimes();
-        EasyMock.expect(bc.getService(rsalSref)).andReturn(rsal).anyTimes();
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.description()).andReturn(epd);
-        EasyMock.replay(endpoint);
-        EasyMock.replay(bc);
-        EventProducer eventProducer = new EventProducer(bc);
+        final ServiceReference sref = c.createMock(ServiceReference.class);
 
+        c.replay();
+
+        EventProducer eventProducer = new EventProducer(bc);
         ExportRegistrationImpl ereg = new ExportRegistrationImpl(sref, endpoint, rsaCore, eventProducer);
         eventProducer.publishNotification(ereg);
 
-        EasyMock.verify(rsaCore, sref, bundle, rsal, rsalSref, bc);
+        RemoteServiceAdminEvent rsae = capturedEvent.getValue();
+        Assert.assertNull(rsae.getException());
+        Assert.assertEquals(RemoteServiceAdminEvent.EXPORT_REGISTRATION, rsae.getType());
+        Assert.assertSame(bundle, rsae.getSource());
+        ExportReference er = rsae.getExportReference();
+        Assert.assertSame(epd, er.getExportedEndpoint());
+        Assert.assertSame(sref, er.getExportedService());
+
+        c.verify();
     }
 
     @Test
     public void testPublishErrorNotification() throws Exception {
-        RemoteServiceAdminCore rsaCore = EasyMock.createNiceMock(RemoteServiceAdminCore.class);
-        EasyMock.replay(rsaCore);
+        c.replay();
+
+        EventProducer eventProducer = new EventProducer(bc);
+        final Exception exportException = new Exception();
+        ExportRegistrationImpl ereg = new ExportRegistrationImpl(rsaCore, eventProducer, exportException);
+        eventProducer.publishNotification(Arrays.<ExportRegistration>asList(ereg));
 
-        final EndpointDescription endpoint = EasyMock.createNiceMock(EndpointDescription.class);
-        EasyMock.expect(endpoint.getInterfaces()).andReturn(Arrays.asList("org.foo.Bar")).anyTimes();
-        EasyMock.replay(endpoint);
-        final ServiceReference sref = EasyMock.createNiceMock(ServiceReference.class);
-        EasyMock.replay(sref);
+        RemoteServiceAdminEvent rsae = capturedEvent.getValue();
+        Assert.assertSame(exportException, rsae.getException());
+        Assert.assertEquals(RemoteServiceAdminEvent.EXPORT_ERROR, rsae.getType());
+        Assert.assertSame(bundle, rsae.getSource());
+        Assert.assertNull(rsae.getImportReference());
+        Assert.assertNull(rsae.getExportReference());
 
-        final Bundle bundle = EasyMock.createNiceMock(Bundle.class);
-        EasyMock.expect(bundle.getBundleId()).andReturn(42L).anyTimes();
-        EasyMock.expect(bundle.getSymbolicName()).andReturn("test.bundle").anyTimes();
-        EasyMock.expect(bundle.getHeaders()).andReturn(new Hashtable<String, String>()).anyTimes();
-        EasyMock.replay(bundle);
+        c.verify();
+    }
 
-        final Exception exportException = new Exception();
+    private Bundle createBundle() {
+        final Bundle bundle = c.createMock(Bundle.class);
+        expect(bundle.getBundleId()).andReturn(42L).anyTimes();
+        expect(bundle.getSymbolicName()).andReturn("test.bundle").anyTimes();
+        Dictionary<String, String> headers = new Hashtable<String, String>();
+        headers.put("Bundle-Version", "1.2.3.test");
+        expect(bundle.getHeaders()).andReturn(headers).anyTimes();
+        return bundle;
+    }
 
-        RemoteServiceAdminListener rsal = EasyMock.createNiceMock(RemoteServiceAdminListener.class);
-        rsal.remoteAdminEvent((RemoteServiceAdminEvent) EasyMock.anyObject());
-        EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
-            @Override
-            public Object answer() throws Throwable {
-                RemoteServiceAdminEvent rsae = (RemoteServiceAdminEvent) EasyMock.getCurrentArguments()[0];
-                Assert.assertSame(exportException, rsae.getException());
-                Assert.assertEquals(RemoteServiceAdminEvent.EXPORT_ERROR, rsae.getType());
-                Assert.assertSame(bundle, rsae.getSource());
-                Assert.assertNull(rsae.getImportReference());
-                Assert.assertNull(rsae.getExportReference());
-
-                return null;
-            }
-        });
-        EasyMock.replay(rsal);
-
-        ServiceReference rsalSref = EasyMock.createNiceMock(ServiceReference.class);
-        EasyMock.expect(rsalSref.getBundle()).andReturn(bundle).anyTimes();
-        EasyMock.replay(rsalSref);
-
-        BundleContext bc = EasyMock.createNiceMock(BundleContext.class);
-
-        EasyMock.expect(bc.getBundle()).andReturn(bundle).anyTimes();
-        EasyMock.expect(bc.getServiceReferences(RemoteServiceAdminListener.class.getName(), null))
-                .andReturn(new ServiceReference[] {rsalSref}).anyTimes();
-        EasyMock.expect(bc.getService(rsalSref)).andReturn(rsal).anyTimes();
-        EasyMock.replay(bc);
-        EventProducer eventProducer = new EventProducer(bc);
+    private BundleContext bundleContextWithRsal(Bundle bundle)
+            throws InvalidSyntaxException {
+        
+        RemoteServiceAdminListener rsal = c.createMock(RemoteServiceAdminListener.class);
+        rsal.remoteAdminEvent(EasyMock.capture(capturedEvent));
+        expectLastCall().atLeastOnce();
+        
+        ServiceReference rsalSref = c.createMock(ServiceReference.class);
+        expect(rsalSref.getBundle()).andReturn(bundle).anyTimes();
 
-        ExportRegistrationImpl ereg = new ExportRegistrationImpl(rsaCore, eventProducer, exportException);
-        eventProducer.publishNotification(Arrays.<ExportRegistration>asList(ereg));
+        BundleContext bc = c.createMock(BundleContext.class);
 
-        EasyMock.verify(rsaCore, sref, bundle, rsal, rsalSref, bc);
+        expect(bc.getBundle()).andReturn(bundle).anyTimes();
+        expect(bc.getServiceReferences(RemoteServiceAdminListener.class.getName(), null))
+                .andReturn(new ServiceReference[] {rsalSref}).anyTimes();
+        expect(bc.getService(rsalSref)).andReturn(rsal).anyTimes();
+        return bc;
+    }
+
+    private EndpointDescription dummyEndpoint() {
+        final String uuid = UUID.randomUUID().toString();
+        Map<String, Object> props = new HashMap<>();
+        props.put(RemoteConstants.ENDPOINT_SERVICE_ID, Long.MAX_VALUE);
+        props.put(RemoteConstants.ENDPOINT_FRAMEWORK_UUID, uuid);
+        props.put(RemoteConstants.ENDPOINT_ID, "foo://bar");
+        props.put(Constants.OBJECTCLASS, new String[] {"org.foo.Bar", "org.boo.Far"});
+        props.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, new String[] {"org.apache.cxf.ws"});
+        final EndpointDescription epd = new EndpointDescription(props);
+        return epd;
     }
 }