working with pax runner.
[xmlrouter] / integrationtest / src / test / java / org / wamblee / xmlrouter / integrationtest / XmlRouterIntegrationTest.java
index cfd362587474ac7365e07dc57be5f3548f64b5cf..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 {
 
     @Configuration()
     public Option[] config() {
-        return options(junitBundles(),
-        // mockito 1.7
-        // wrappedBundle(mavenBundle().groupId("org.mockito")
-        // .artifactId("mockito-all").version("1.7")),
-        // mockito 1.8.5
+        return options(
+            cleanCaches(),
+            // Test dependencies
+            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")
+                .artifactId("xmlrouter-common").versionAsInProject(),//
+            mavenBundle().groupId("org.wamblee.xmlrouter")
+                .artifactId("xmlrouter-config").versionAsInProject(),//
+            mavenBundle().groupId("org.wamblee.xmlrouter")
+                .artifactId("xmlrouter-publish").versionAsInProject(),//
+            mavenBundle().groupId("org.wamblee.xmlrouter")
+                .artifactId("xmlrouter-subscribe").versionAsInProject(),//
+            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());
     }
 
     @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();
+    }
 }