working with pax runner.
[xmlrouter] / integrationtest / src / test / java / org / wamblee / xmlrouter / integrationtest / XmlRouterIntegrationTest.java
index 7ca83cac3d61f518d41707196b965f38e7bc7060..a07a137b3f94e6db42b4dad602b4ebb722473741 100644 (file)
  */
 package org.wamblee.xmlrouter.integrationtest;
 
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
 import static org.ops4j.pax.exam.CoreOptions.*;
 
+import javax.xml.transform.dom.DOMSource;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.Configuration;
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.wamblee.xmlrouter.subscribe.Destination;
 
 @RunWith(JUnit4TestRunner.class)
 public class XmlRouterIntegrationTest {
@@ -30,11 +36,14 @@ public class XmlRouterIntegrationTest {
     @Configuration()
     public Option[] config() {
         return options(
+            cleanCaches(),
             // Test dependencies
-            mavenBundle().groupId("junit").artifactId("junit-dep")
-                .version("4.8.2"), //
+            wrappedBundle(mavenBundle().groupId("junit")
+                .artifactId("junit-dep").version("4.8.2")), //
             mavenBundle().groupId("org.mockito").artifactId("mockito-all")
                 .version("1.8.5"), //
+            // junitBundles(),
+            // mockitoBundles(),
 
             // XML Router API packages.
             mavenBundle().groupId("org.wamblee.xmlrouter")
@@ -57,9 +66,17 @@ public class XmlRouterIntegrationTest {
     }
 
     @Test
-    public void test1(BundleContext aContext) {
+    public void test1(BundleContext aContext) throws InterruptedException {
         System.out.println("=== Got context " + aContext);
 
-    }
+        Destination dest = mock(Destination.class);
+        // verify(dest, never()).receive(any(DOMSource.class));
+        ServiceRegistration registration = aContext.registerService(
+            Destination.class.getName(), dest, null);
 
+        Thread.sleep(5000);
+        verify(dest, atLeastOnce()).receive(any(DOMSource.class));
+
+        registration.unregister();
+    }
 }