public class SystemAssemblerTest extends TestCase {
- private ServiceRegistry _registry;
-
@Override
protected void setUp() throws Exception {
super.setUp();
- _registry = new DefaultServiceRegistry();
}
private static class MyMultiple implements Serializable, Runnable {
}
public void testFilterProvided() {
- RequiredInterface req1 = new DefaultRequiredInterfaceDescriptor(
- "name", Runnable.class);
- RequiredInterface req2 = new DefaultRequiredInterfaceDescriptor(
- "name", Serializable.class);
- ProvidedInterface prov1 = new DefaultProvidedInterfaceDescriptor(
+ RequiredInterface req1 = new DefaultRequiredInterface("name",
+ Runnable.class);
+ RequiredInterface req2 = new DefaultRequiredInterface("name",
+ Serializable.class);
+ ProvidedInterface prov1 = new DefaultProvidedInterface(
"name", Runnable.class);
- ProvidedInterface prov2 = new DefaultProvidedInterfaceDescriptor(
+ ProvidedInterface prov2 = new DefaultProvidedInterface(
"name", Serializable.class);
- ProvidedInterface prov3 = new DefaultProvidedInterfaceDescriptor(
+ ProvidedInterface prov3 = new DefaultProvidedInterface(
"name", MyMultiple.class);
AssertionUtils.assertEquals(new RequiredInterface[] { req1 },
SystemAssembler.filterRequiredServices(prov1, Arrays
.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 RequiredInterface[] { req1, req2 })));
-
- AssertionUtils.assertEquals(
- new ProvidedInterface[] { prov1 },
+ SystemAssembler.filterRequiredServices(prov1, Arrays
+ .asList(new RequiredInterface[] { req1, req2 })));
+ AssertionUtils.assertEquals(new RequiredInterface[] { req1, req2 },
+ SystemAssembler.filterRequiredServices(prov3, Arrays
+ .asList(new RequiredInterface[] { req1, req2 })));
+
+ AssertionUtils.assertEquals(new ProvidedInterface[] { prov1 },
SystemAssembler.filterProvidedServices(req1, Arrays
.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 ProvidedInterface[] { prov1, prov3 })));
+ 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 ProvidedInterface[] { prov1, prov3 })));
}
public void testEnvironmentApplication() {
- Component environment = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment = new Environment();
+ Component application = new Application();
SystemAssembler assembler = new SystemAssembler(new Component[] {
environment, application }, new ProvidedInterface[0]);
- assembler.start(_registry, new Service[0]);
- Service[] envServices = environment.getRunningServices();
+ assembler.start();
+ ProvidedInterface[] envServices = environment.getRunningServices();
assertEquals(2, envServices.length);
- Service[] appServices = environment.getRunningServices();
+ ProvidedInterface[] appServices = environment.getRunningServices();
assertEquals(2, appServices.length);
- assertEquals(2, _registry.listAllServices().length);
+ // TODO test stopping!!!!!!
environment.stop();
- assertEquals(0, _registry.listAllServices().length);
-
application.stop();
- assertEquals(0, _registry.listAllServices().length);
}
public void testApplicationEnvironment() {
try {
- Component environment = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment = new Environment();
+ Component application = new Application();
SystemAssembler assembler = new SystemAssembler(new Component[] {
- application, environment },
- new ProvidedInterface[0]);
- assembler.start(_registry, new Service[0]);
+ application, environment }, new ProvidedInterface[0]);
+ assembler.start();
} catch (SystemAssemblyException e) {
// e.printStackTrace();
return;
}
public void testComposite() {
- Component environment = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment = new Environment();
+ Component application = new Application();
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],
+ Container system = new Container("all", new Component[] { environment,
+ application }, new ProvidedInterface[0],
new RequiredInterface[0]);
assertEquals(Status.NOT_STARTED, system.getStatus());
- system.start("root", new Service[0]);
+ system.start("root");
RequiredInterface[] required = system.getRequiredServices();
assertEquals(0, required.length);
ProvidedInterface[] provided = system.getProvidedServices();
public void testCompositeWithWrongProvidedInfo() {
try {
- Component environment = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment = new Environment();
+ Component application = new Application();
Container system = new Container(
"all",
- _registry,
new Component[] { environment, application },
- new ProvidedInterface[] { new DefaultProvidedInterfaceDescriptor(
+ new ProvidedInterface[] { new DefaultProvidedInterface(
"string", String.class) },
- new DefaultRequiredInterfaceDescriptor[0]);
+ new DefaultRequiredInterface[0]);
+ } catch (SystemAssemblyException e) {
+ return;
+ }
+ fail();
+ }
+
+ public void testCompositeRequiredInterfaceNotProvided() {
+ try {
+ Component environment = new Environment();
+ Component application = new Application();
+ Container system = new Container(
+ "all",
+ new Component[] { environment, application },
+ new ProvidedInterface[0],
+ new RequiredInterface[] { new DefaultRequiredInterface(
+ "string", String.class) });
+ system.start("root");
} catch (SystemAssemblyException e) {
return;
}
}
public void testCompositeWithSuperfluousRequiredInfo() {
- Component environment = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment = new Environment();
+ Component application = new Application();
Container system = new Container(
"all",
- _registry,
new Component[] { environment, application },
new ProvidedInterface[0],
- new RequiredInterface[] { new DefaultRequiredInterfaceDescriptor(
+ new RequiredInterface[] { new DefaultRequiredInterface(
"string", String.class) });
- system.start("root", new Service[0]);
+ system.getRequiredServices()[0].setProvider(
+ new DefaultProvidedInterface("hallo", String.class));
+ system.start("root");
RequiredInterface[] required = system.getRequiredServices();
assertEquals(1, required.length);
ProvidedInterface[] provided = system.getProvidedServices();
public void testCompositeWithExternalDependencesNotProvided() {
try {
- 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]);
+ Component environment = new Environment();
+ Component application = new Application();
+ Container system = new Container("all",
+ new Component[] { application }, new ProvidedInterface[0],
+ application.getRequiredServices());
+ system.start("root");
} catch (SystemAssemblyException e) {
return;
}
public void testCompositeWithExternalDependencesProvided() {
- 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);
+ Component environment = new Environment();
+ Component application = new Application();
+ Container system = new Container("all",
+ new Component[] { application }, new ProvidedInterface[0],
+ application.getRequiredServices());
+ environment.start("env");
+ system.getRequiredServices()[0].setProvider(environment.getProvidedServices()[0]);
+ system.getRequiredServices()[1].setProvider(environment.getProvidedServices()[1]);
+
+ system.start("root");
RequiredInterface[] required = system.getRequiredServices();
assertEquals(2, required.length);
ProvidedInterface[] provided = system.getProvidedServices();
public void testAmbiguousInterfaces() {
try {
- Component environment1 = new Environment(_registry);
- Component environment2 = new Environment(_registry);
- Component application = new Application(_registry);
+ Component environment1 = new Environment();
+ Component environment2 = new Environment();
+ Component application = new Application();
SystemAssembler assembler = new SystemAssembler(new Component[] {
environment1, environment2, application },
new ProvidedInterface[0]);
- assembler.start(_registry, new Service[0]);
+ assembler.start();
} catch (SystemAssemblyException e) {
return;
public void testIncompleteRequirements() {
try {
- Component application = new Application(_registry);
- Container system = new Container("all", _registry,
- new Component[] { application },
- new ProvidedInterface[0],
+ Component application = new Application();
+ Container system = new Container("all",
+ new Component[] { application }, new ProvidedInterface[0],
new RequiredInterface[0]);
- system.start("root", new Service[0]);
+ system.start("root");
} catch (SystemAssemblyException e) {
return;
}