X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fspring%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fspring%2FSpringComponentTest.java;h=0914c9aa3d5e065c138ebb30387fe5f6ba377221;hb=dea786c9d49228a37cb5fd5b4113b86d9f6cddbf;hp=43902d430c12f8130321bebf5eeb2a30d6f808fb;hpb=e73828b054b0734ddce0ff9194fca75ed3c98b7a;p=utils diff --git a/system/spring/src/test/java/org/wamblee/system/spring/SpringComponentTest.java b/system/spring/src/test/java/org/wamblee/system/spring/SpringComponentTest.java index 43902d43..0914c9aa 100644 --- a/system/spring/src/test/java/org/wamblee/system/spring/SpringComponentTest.java +++ b/system/spring/src/test/java/org/wamblee/system/spring/SpringComponentTest.java @@ -12,7 +12,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ package org.wamblee.system.spring; import java.io.IOException; @@ -25,8 +25,10 @@ import junit.framework.TestCase; import org.wamblee.io.ClassPathResource; import org.wamblee.system.core.DefaultProvidedInterface; import org.wamblee.system.core.DefaultRequiredInterface; +import org.wamblee.system.core.DefaultScope; import org.wamblee.system.core.ProvidedInterface; import org.wamblee.system.core.RequiredInterface; +import org.wamblee.system.core.Scope; import org.wamblee.system.core.SystemAssemblyException; public class SpringComponentTest extends TestCase { @@ -34,7 +36,7 @@ public class SpringComponentTest extends TestCase { private static final String HELLO_SERVICE_SPRING_XML = "test.org.wamblee.system.spring.xml"; private static final String HELLO_SERVICE_SPRING_WITH_REQS_XML = "test.org.wamblee.system.springWithRequirements.xml"; private static final String HELLO_SERVICE_SPRING_WITH_PROPERTIES_XML = "test.org.wamblee.system.springWithProperties.xml"; - private static final String PROPERTY_FILE = "test.org.wamblee.system.spring.properties"; + private static final String PROPERTY_FILE = "test.org.wamblee.system.spring.properties"; @Override protected void setUp() throws Exception { @@ -46,46 +48,43 @@ public class SpringComponentTest extends TestCase { new String[] { HELLO_SERVICE_SPRING_XML }, new HashMap(), new HashMap()); - system.start(); - ProvidedInterface[] services = system.getRunningInterfaces(); - assertEquals(0, services.length); - - system.stop(); + Scope runtime = system.start(); + assertEquals(0, runtime.getProvidedInterfaces().length); + + system.stop(runtime); } public void testOneProvidedService() { Map provided = new HashMap(); - provided.put("helloService", new DefaultProvidedInterface( - "hello", HelloService.class)); + provided.put("helloService", new DefaultProvidedInterface("hello", + HelloService.class)); - SpringComponent system = new SpringComponent("system", + SpringComponent system = new SpringComponent("system", new String[] { HELLO_SERVICE_SPRING_XML }, provided, new HashMap()); - system.start(); - ProvidedInterface[] services = system.getRunningInterfaces(); + Scope runtime = system.start(); + ProvidedInterface[] services = runtime.getProvidedInterfaces(); assertEquals(1, services.length); - assertTrue(services[0].getImplementation() instanceof HelloService); - assertEquals("Hello world!", ((HelloService)services[0].getImplementation()) - .say()); - system.stop(); + Object service = runtime.retrieveInterfaceImplementation(services[0], Object.class); + assertTrue(service instanceof HelloService); + assertEquals("Hello world!", ((HelloService) service).say()); + system.stop(runtime); } - + public void testWithProperties() throws IOException { Map provided = new HashMap(); - provided.put("helloService", new DefaultProvidedInterface( - "hello", HelloService.class)); - SpringComponent system = new SpringComponent("system", + provided.put("helloService", new DefaultProvidedInterface("hello", + HelloService.class)); + SpringComponent system = new SpringComponent("system", new String[] { HELLO_SERVICE_SPRING_WITH_PROPERTIES_XML }, - provided, - new HashMap()); + provided, new HashMap()); Properties props = new Properties(); props.load(new ClassPathResource(PROPERTY_FILE).getInputStream()); system.addProperties(props); - - system.start(); - ProvidedInterface[] services = system.getRunningInterfaces(); - assertEquals("Property Value", - ((HelloService)services[0].getImplementation()).say()); + + Scope scope = system.start(); + ProvidedInterface[] services = scope.getProvidedInterfaces(); + assertEquals("Property Value", scope.retrieveInterfaceImplementation(services[0], HelloService.class).say()); } public void testWithMissingRequirement() { @@ -96,7 +95,7 @@ public class SpringComponentTest extends TestCase { new HashMap()); system.start(); } catch (SystemAssemblyException e) { - //e.printStackTrace(); + // e.printStackTrace(); return; } fail(); @@ -109,41 +108,44 @@ public class SpringComponentTest extends TestCase { SpringComponent system = new SpringComponent("system", new String[] { HELLO_SERVICE_SPRING_WITH_REQS_XML }, new HashMap(), required); - - HelloService helloObject = new HelloService("ladida"); - ProvidedInterface helloService = new DefaultProvidedInterface("hello", HelloService.class); - helloService.publish(helloObject); + + HelloService helloObject = new HelloService("ladida"); + ProvidedInterface helloService = new DefaultProvidedInterface("hello", + HelloService.class); + Scope scope = new DefaultScope(new ProvidedInterface[]{ helloService }); + scope.publishInterface(helloService, helloObject); system.getRequiredInterfaces()[0].setProvider(helloService); - - system.start(); - system.stop(); + + Scope runtime = system.start(scope); + system.stop(runtime); } - + public void testWithRequirementAndProvidedService() { Map required = new HashMap(); required.put(new DefaultRequiredInterface("hello", HelloService.class), "helloService"); - Map provided = new HashMap(); + Map provided = new HashMap(); provided.put("blaService", new DefaultProvidedInterface("bla", BlaService.class)); SpringComponent system = new SpringComponent("system", - new String[] { HELLO_SERVICE_SPRING_WITH_REQS_XML }, - provided, required); - - HelloService helloObject = new HelloService("ladida"); - ProvidedInterface helloService = - new DefaultProvidedInterface("hello", HelloService.class); - helloService.publish(helloObject); + new String[] { HELLO_SERVICE_SPRING_WITH_REQS_XML }, provided, + required); + + HelloService helloObject = new HelloService("ladida"); + ProvidedInterface helloService = new DefaultProvidedInterface("hello", + HelloService.class); + Scope scope = new DefaultScope(new ProvidedInterface[] { helloService }); + scope.publishInterface(helloService, helloObject); system.getRequiredInterfaces()[0].setProvider(helloService); - system.start(); - ProvidedInterface started = system.getProvidedInterfaces()[0]; - - assertNotNull(started.getImplementation()); - assertTrue(started.getImplementation() instanceof BlaService); - assertEquals("ladida", - ((BlaService)started.getImplementation()).execute()); - system.stop(); + Scope runtime = system.start(scope); + ProvidedInterface started = runtime.getProvidedInterfaces()[0]; + + Object impl = runtime.retrieveInterfaceImplementation(started, BlaService.class); + assertNotNull(impl); + assertTrue(impl instanceof BlaService); + assertEquals("ladida", ((BlaService)impl).execute()); + system.stop(runtime); } }