X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2FSystemAssemblerTest.java;h=c372bf045b13c236f7923c25f6afd4525ee02dae;hb=0af4854898104bd6322c0f22feb6dc285859f420;hp=2dba056e63197879c35e4e9e30a96c70b0516843;hpb=b6364aebdb15bb0648e8db2030d8ad793e209af6;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java b/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java index 2dba056e..c372bf04 100644 --- a/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java +++ b/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; +import org.wamblee.system.Component.Status; import org.wamblee.test.AssertionUtils; import junit.framework.TestCase; @@ -26,46 +27,47 @@ public class SystemAssemblerTest extends TestCase { } public void testFilterProvided() { - RequiredServiceDescriptor req1 = new DefaultRequiredServiceDescriptor( + RequiredInterface req1 = new DefaultRequiredInterfaceDescriptor( "name", Runnable.class); - RequiredServiceDescriptor req2 = new DefaultRequiredServiceDescriptor( + RequiredInterface req2 = new DefaultRequiredInterfaceDescriptor( "name", Serializable.class); - ProvidedServiceDescriptor prov1 = new DefaultProvidedServiceDescriptor( + ProvidedInterface prov1 = new DefaultProvidedInterfaceDescriptor( "name", Runnable.class); - ProvidedServiceDescriptor prov2 = new DefaultProvidedServiceDescriptor( + ProvidedInterface prov2 = new DefaultProvidedInterfaceDescriptor( "name", Serializable.class); - ProvidedServiceDescriptor prov3 = new DefaultProvidedServiceDescriptor( + ProvidedInterface prov3 = new DefaultProvidedInterfaceDescriptor( "name", MyMultiple.class); - AssertionUtils.assertEquals(new RequiredServiceDescriptor[] { req1 }, + AssertionUtils.assertEquals(new RequiredInterface[] { req1 }, SystemAssembler.filterRequiredServices(prov1, Arrays - .asList(new RequiredServiceDescriptor[] { req1 }))); - AssertionUtils.assertEquals(new RequiredServiceDescriptor[] { req1 }, - SystemAssembler - .filterRequiredServices(prov1, Arrays - .asList(new RequiredServiceDescriptor[] { req1, - req2 }))); - AssertionUtils.assertEquals(new RequiredServiceDescriptor[] { req1, + .asList(new RequiredInterface[] { req1 }))); + AssertionUtils.assertEquals(new RequiredInterface[] { req1 }, + SystemAssembler.filterRequiredServices(prov1, + Arrays.asList(new RequiredInterface[] { req1, + req2 }))); + AssertionUtils.assertEquals(new RequiredInterface[] { req1, req2 }, SystemAssembler.filterRequiredServices(prov3, Arrays - .asList(new RequiredServiceDescriptor[] { req1, req2 }))); + .asList(new RequiredInterface[] { req1, req2 }))); - AssertionUtils.assertEquals(new ProvidedServiceDescriptor[] { prov1 }, + AssertionUtils.assertEquals( + new ProvidedInterface[] { prov1 }, SystemAssembler.filterProvidedServices(req1, Arrays - .asList(new ProvidedServiceDescriptor[] { prov1 }))); - AssertionUtils.assertEquals(new ProvidedServiceDescriptor[] { prov1 }, - SystemAssembler.filterProvidedServices(req1, - Arrays.asList(new ProvidedServiceDescriptor[] { prov1, - prov2 }))); - AssertionUtils.assertEquals(new ProvidedServiceDescriptor[] { prov1, + .asList(new ProvidedInterface[] { prov1 }))); + AssertionUtils.assertEquals( + new ProvidedInterface[] { prov1 }, SystemAssembler + .filterProvidedServices(req1, Arrays + .asList(new ProvidedInterface[] { + prov1, prov2 }))); + AssertionUtils.assertEquals(new ProvidedInterface[] { prov1, prov3 }, SystemAssembler.filterProvidedServices(req1, Arrays - .asList(new ProvidedServiceDescriptor[] { prov1, prov3 }))); + .asList(new ProvidedInterface[] { prov1, prov3 }))); } public void testEnvironmentApplication() { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - SystemAssembler assembler = new SystemAssembler(new SubSystem[] { - environment, application }, new ProvidedServiceDescriptor[0]); + Component environment = new Environment(_registry); + Component application = new Application(_registry); + SystemAssembler assembler = new SystemAssembler(new Component[] { + environment, application }, new ProvidedInterface[0]); assembler.start(_registry, new Service[0]); Service[] envServices = environment.getRunningServices(); assertEquals(2, envServices.length); @@ -82,11 +84,11 @@ public class SystemAssemblerTest extends TestCase { public void testApplicationEnvironment() { try { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - SystemAssembler assembler = new SystemAssembler(new SubSystem[] { + Component environment = new Environment(_registry); + Component application = new Application(_registry); + SystemAssembler assembler = new SystemAssembler(new Component[] { application, environment }, - new ProvidedServiceDescriptor[0]); + new ProvidedInterface[0]); assembler.start(_registry, new Service[0]); } catch (SystemAssemblyException e) { // e.printStackTrace(); @@ -96,29 +98,40 @@ public class SystemAssemblerTest extends TestCase { } public void testComposite() { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - CompositeSystem system = new CompositeSystem("all", _registry, - new SubSystem[] { environment, application }, - new ServiceDescriptor[0], new ServiceDescriptor[0]); + Component environment = new Environment(_registry); + Component application = new Application(_registry); + assertEquals(Status.NOT_STARTED, environment.getStatus()); + assertEquals(Status.NOT_STARTED, application.getStatus()); + Container system = new Container("all", _registry, new Component[] { + environment, application }, new ProvidedInterface[0], + new RequiredInterface[0]); + assertEquals(Status.NOT_STARTED, system.getStatus()); system.start("root", new Service[0]); - ServiceDescriptor[] required = system.getRequiredServices(); + RequiredInterface[] required = system.getRequiredServices(); assertEquals(0, required.length); - ServiceDescriptor[] provided = system.getProvidedServices(); + ProvidedInterface[] provided = system.getProvidedServices(); assertEquals(0, provided.length); + assertEquals(Status.RUNNING, environment.getStatus()); + assertEquals(Status.RUNNING, application.getStatus()); + assertEquals(Status.RUNNING, system.getStatus()); + + system.stop(); + assertEquals(Status.STOPPED, environment.getStatus()); + assertEquals(Status.STOPPED, application.getStatus()); + assertEquals(Status.STOPPED, system.getStatus()); } public void testCompositeWithWrongProvidedInfo() { try { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - CompositeSystem system = new CompositeSystem( + Component environment = new Environment(_registry); + Component application = new Application(_registry); + Container system = new Container( "all", _registry, - new SubSystem[] { environment, application }, - new ServiceDescriptor[] { new DefaultProvidedServiceDescriptor( + new Component[] { environment, application }, + new ProvidedInterface[] { new DefaultProvidedInterfaceDescriptor( "string", String.class) }, - new DefaultRequiredServiceDescriptor[0]); + new DefaultRequiredInterfaceDescriptor[0]); } catch (SystemAssemblyException e) { return; } @@ -126,27 +139,30 @@ public class SystemAssemblerTest extends TestCase { } public void testCompositeWithSuperfluousRequiredInfo() { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - CompositeSystem system = new CompositeSystem("all", _registry, - new SubSystem[] { environment, application }, - new ServiceDescriptor[0], - new ServiceDescriptor[] { new DefaultRequiredServiceDescriptor( + Component environment = new Environment(_registry); + Component application = new Application(_registry); + Container system = new Container( + "all", + _registry, + new Component[] { environment, application }, + new ProvidedInterface[0], + new RequiredInterface[] { new DefaultRequiredInterfaceDescriptor( "string", String.class) }); system.start("root", new Service[0]); - ServiceDescriptor[] required = system.getRequiredServices(); + RequiredInterface[] required = system.getRequiredServices(); assertEquals(1, required.length); - ServiceDescriptor[] provided = system.getProvidedServices(); + ProvidedInterface[] provided = system.getProvidedServices(); assertEquals(0, provided.length); } public void testCompositeWithExternalDependencesNotProvided() { try { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - CompositeSystem system = new CompositeSystem("all", _registry, - new SubSystem[] { application }, new ServiceDescriptor[0], - application.getRequiredServices()); + Component environment = new Environment(_registry); + Component application = new Application(_registry); + Container system = new Container("all", _registry, + new Component[] { application }, + new ProvidedInterface[0], application + .getRequiredServices()); system.start("root", new Service[0]); } catch (SystemAssemblyException e) { return; @@ -157,29 +173,45 @@ public class SystemAssemblerTest extends TestCase { public void testCompositeWithExternalDependencesProvided() { - SubSystem environment = new Environment(_registry); - SubSystem application = new Application(_registry); - CompositeSystem system = new CompositeSystem("all", _registry, - new SubSystem[] { application }, new ServiceDescriptor[0], - application.getRequiredServices()); + Component environment = new Environment(_registry); + Component application = new Application(_registry); + Container system = new Container("all", _registry, + new Component[] { application }, + new ProvidedInterface[0], application + .getRequiredServices()); Service[] envServices = environment.start("env", new Service[0]); system.start("root", envServices); - ServiceDescriptor[] required = system.getRequiredServices(); + RequiredInterface[] required = system.getRequiredServices(); assertEquals(2, required.length); - ServiceDescriptor[] provided = system.getProvidedServices(); + ProvidedInterface[] provided = system.getProvidedServices(); assertEquals(0, provided.length); } public void testAmbiguousInterfaces() { try { - SubSystem environment1 = new Environment(_registry); - SubSystem environment2 = new Environment(_registry); - SubSystem application = new Application(_registry); - SystemAssembler assembler = new SystemAssembler(new SubSystem[] { + Component environment1 = new Environment(_registry); + Component environment2 = new Environment(_registry); + Component application = new Application(_registry); + SystemAssembler assembler = new SystemAssembler(new Component[] { environment1, environment2, application }, - new ProvidedServiceDescriptor[0]); + new ProvidedInterface[0]); assembler.start(_registry, new Service[0]); + + } catch (SystemAssemblyException e) { + return; + } + fail(); + } + + public void testIncompleteRequirements() { + try { + Component application = new Application(_registry); + Container system = new Container("all", _registry, + new Component[] { application }, + new ProvidedInterface[0], + new RequiredInterface[0]); + system.start("root", new Service[0]); } catch (SystemAssemblyException e) { return; }