import org.wamblee.system.Component.Status;
import org.wamblee.test.AssertionUtils;
+import org.wamblee.test.EventTracker;
import junit.framework.TestCase;
public class SystemAssemblerTest extends TestCase {
+ private EventTracker<String> _tracker;
+
@Override
protected void setUp() throws Exception {
super.setUp();
+ _tracker = new EventTracker<String>();
}
private static class MyMultiple implements Serializable, Runnable {
Runnable.class);
RequiredInterface req2 = new DefaultRequiredInterface("name",
Serializable.class);
- ProvidedInterface prov1 = new DefaultProvidedInterface(
- "name", Runnable.class);
- ProvidedInterface prov2 = new DefaultProvidedInterface(
- "name", Serializable.class);
- ProvidedInterface prov3 = new DefaultProvidedInterface(
- "name", MyMultiple.class);
+ ProvidedInterface prov1 = new DefaultProvidedInterface("name",
+ Runnable.class);
+ ProvidedInterface prov2 = new DefaultProvidedInterface("name",
+ Serializable.class);
+ ProvidedInterface prov3 = new DefaultProvidedInterface("name",
+ MyMultiple.class);
AssertionUtils.assertEquals(new RequiredInterface[] { req1 },
SystemAssembler.filterRequiredServices(prov1, Arrays
}
public void testEnvironmentApplication() {
- Component environment = new Environment();
- Component application = new Application();
+ Component environment = new Environment(_tracker);
+ Component application = new Application(_tracker);
SystemAssembler assembler = new SystemAssembler(new Component[] {
environment, application }, new ProvidedInterface[0]);
assembler.start();
+ AssertionUtils.assertEquals(new String[] { "start.environment",
+ "start.application" }, _tracker.getEvents(
+ Thread.currentThread()).toArray(new String[0]));
ProvidedInterface[] envServices = environment.getRunningServices();
assertEquals(2, envServices.length);
ProvidedInterface[] appServices = environment.getRunningServices();
assertEquals(2, appServices.length);
-
- // TODO test stopping!!!!!!
- environment.stop();
- application.stop();
+
}
public void testApplicationEnvironment() {
}
public void testComposite() {
- Component environment = new Environment();
- Component application = new Application();
+ Component environment = new Environment(_tracker);
+ Component application = new Application(_tracker);
+ assertEquals(0, _tracker.getEventCount());
assertEquals(Status.NOT_STARTED, environment.getStatus());
assertEquals(Status.NOT_STARTED, application.getStatus());
+
Container system = new Container("all", new Component[] { environment,
application }, new ProvidedInterface[0],
new RequiredInterface[0]);
assertEquals(Status.RUNNING, environment.getStatus());
assertEquals(Status.RUNNING, application.getStatus());
assertEquals(Status.RUNNING, system.getStatus());
-
+
+ AssertionUtils.assertEquals(
+ new String[] { "start.environment", "start.application" },
+ _tracker.getEvents(Thread.currentThread()).toArray(new String[0]));
+ _tracker.clear();
+
system.stop();
assertEquals(Status.STOPPED, environment.getStatus());
assertEquals(Status.STOPPED, application.getStatus());
assertEquals(Status.STOPPED, system.getStatus());
+
+ AssertionUtils.assertEquals(
+ new String[] { "stop.application", "stop.environment" },
+ _tracker.getEvents(Thread.currentThread()).toArray(new String[0]));
+
+
}
public void testCompositeWithWrongProvidedInfo() {
try {
Component environment = new Environment();
Component application = new Application();
- Container system = new Container(
- "all",
- new Component[] { environment, application },
+ Container system = new Container("all", new Component[] {
+ environment, application },
new ProvidedInterface[] { new DefaultProvidedInterface(
"string", String.class) },
new DefaultRequiredInterface[0]);
try {
Component environment = new Environment();
Component application = new Application();
- Container system = new Container(
- "all",
- new Component[] { environment, application },
- new ProvidedInterface[0],
+ Container system = new Container("all", new Component[] {
+ environment, application }, new ProvidedInterface[0],
new RequiredInterface[] { new DefaultRequiredInterface(
"string", String.class) });
system.start("root");
public void testCompositeWithSuperfluousRequiredInfo() {
Component environment = new Environment();
Component application = new Application();
- Container system = new Container(
- "all",
- new Component[] { environment, application },
- new ProvidedInterface[0],
+ Container system = new Container("all", new Component[] { environment,
+ application }, new ProvidedInterface[0],
new RequiredInterface[] { new DefaultRequiredInterface(
"string", String.class) });
- system.getRequiredServices()[0].setProvider(
- new DefaultProvidedInterface("hallo", String.class));
+ system.getRequiredServices()[0]
+ .setProvider(new DefaultProvidedInterface("hallo", String.class));
system.start("root");
RequiredInterface[] required = system.getRequiredServices();
assertEquals(1, required.length);
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.getRequiredServices()[0].setProvider(environment
+ .getProvidedServices()[0]);
+ system.getRequiredServices()[1].setProvider(environment
+ .getProvidedServices()[1]);
+
system.start("root");
RequiredInterface[] required = system.getRequiredServices();
assertEquals(2, required.length);