working with pax runner.
[xmlrouter] / integrationtest / src / test / java / org / wamblee / xmlrouter / integrationtest / XmlRouterIntegrationTest.java
1 /*
2  * Copyright 2005-2011 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.xmlrouter.integrationtest;
17
18 import static org.mockito.Matchers.*;
19 import static org.mockito.Mockito.*;
20 import static org.ops4j.pax.exam.CoreOptions.*;
21
22 import javax.xml.transform.dom.DOMSource;
23
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.ops4j.pax.exam.Option;
27 import org.ops4j.pax.exam.junit.Configuration;
28 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
29 import org.osgi.framework.BundleContext;
30 import org.osgi.framework.ServiceRegistration;
31 import org.wamblee.xmlrouter.subscribe.Destination;
32
33 @RunWith(JUnit4TestRunner.class)
34 public class XmlRouterIntegrationTest {
35
36     @Configuration()
37     public Option[] config() {
38         return options(
39             cleanCaches(),
40             // Test dependencies
41             wrappedBundle(mavenBundle().groupId("junit")
42                 .artifactId("junit-dep").version("4.8.2")), //
43             mavenBundle().groupId("org.mockito").artifactId("mockito-all")
44                 .version("1.8.5"), //
45             // junitBundles(),
46             // mockitoBundles(),
47
48             // XML Router API packages.
49             mavenBundle().groupId("org.wamblee.xmlrouter")
50                 .artifactId("xmlrouter-common").versionAsInProject(),//
51             mavenBundle().groupId("org.wamblee.xmlrouter")
52                 .artifactId("xmlrouter-config").versionAsInProject(),//
53             mavenBundle().groupId("org.wamblee.xmlrouter")
54                 .artifactId("xmlrouter-publish").versionAsInProject(),//
55             mavenBundle().groupId("org.wamblee.xmlrouter")
56                 .artifactId("xmlrouter-subscribe").versionAsInProject(),//
57             mavenBundle().groupId("org.wamblee.xmlrouter")
58                 .artifactId("xmlrouter-listener").versionAsInProject(),//
59
60             // XML Router bundle.
61             mavenBundle().groupId("org.wamblee.xmlrouter")
62                 .artifactId("xmlrouter-router-bundle").versionAsInProject(), //
63
64             // OSGI runtimes
65             felix());
66     }
67
68     @Test
69     public void test1(BundleContext aContext) throws InterruptedException {
70         System.out.println("=== Got context " + aContext);
71
72         Destination dest = mock(Destination.class);
73         // verify(dest, never()).receive(any(DOMSource.class));
74         ServiceRegistration registration = aContext.registerService(
75             Destination.class.getName(), dest, null);
76
77         Thread.sleep(5000);
78         verify(dest, atLeastOnce()).receive(any(DOMSource.class));
79
80         registration.unregister();
81     }
82 }