working with pax runner.
[xmlrouter] / integrationtest / src / test / java / org / wamblee / xmlrouter / integrationtest / XmlRouterIntegrationTest.java
index 912749929b3c131445859df66c6b41b17068115c..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")
@@ -48,27 +57,26 @@ public class XmlRouterIntegrationTest {
             mavenBundle().groupId("org.wamblee.xmlrouter")
                 .artifactId("xmlrouter-listener").versionAsInProject(),//
 
+            // XML Router bundle.
+            mavenBundle().groupId("org.wamblee.xmlrouter")
+                .artifactId("xmlrouter-router-bundle").versionAsInProject(), //
+
             // OSGI runtimes
             felix());
     }
 
-    /*
-     * @Configuration() public Option[] config() { return
-     * options(mavenBundle().groupId("junit").artifactId("junit-dep")
-     * .version("4.8.2"), // mockito 1.7 //
-     * wrappedBundle(mavenBundle().groupId("org.mockito") //
-     * .artifactId("mockito-all").version("1.7")), // mockito 1.8.5 //
-     * mavenBundle().groupId("org.objenesis").artifactId("objenesis") //
-     * .version("1.0"), // // mavenBundle("org.hamcrest",
-     * "hamcrest-core").version("1.1"),//
-     * mavenBundle().groupId("org.mockito").artifactId("mockito-all")
-     * .version("1.8.5"), // felix()); }
-     */
-
     @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();
+    }
 }