X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FApplication.java;h=07857aee2b7510fa05e87a056676b805b360ace8;hb=dea786c9d49228a37cb5fd5b4113b86d9f6cddbf;hp=938f2bd1d50e7e969d46e71d97b778f81a3573ee;hpb=4845c677310814de4c98e22aad483e49b9dfc594;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/core/Application.java b/system/general/src/test/java/org/wamblee/system/core/Application.java index 938f2bd1..07857aee 100644 --- a/system/general/src/test/java/org/wamblee/system/core/Application.java +++ b/system/general/src/test/java/org/wamblee/system/core/Application.java @@ -24,18 +24,26 @@ import org.wamblee.system.core.RequiredInterface; import org.wamblee.test.EventTracker; public class Application extends AbstractComponent { - private static RequiredInterface[] required() { + public static RequiredInterface[] required(boolean aOptional) { return new RequiredInterface[] { - new DefaultRequiredInterface("datasource", DataSource.class), - new DefaultRequiredInterface("integer", Integer.class) + new DefaultRequiredInterface("string", String.class, aOptional), + new DefaultRequiredInterface("integer", Integer.class, aOptional) }; } private EventTracker _tracker; + private String _string; + private Integer _integer; + private double _random; public Application() { - super("application", new ProvidedInterface[0], required()); + super("application", new ProvidedInterface[0], required(false)); + _random = Math.random(); + } + + public Application(boolean aIsOptinal) { + super("application", new ProvidedInterface[0], required(true)); } public Application(EventTracker aTracker) { @@ -44,13 +52,28 @@ public class Application extends AbstractComponent { } @Override - protected void doStart() { - track("start." + getName()); + protected Object doStart(Scope aScope) { + track("start." + getName()); + _string = aScope.retrieveInterfaceImplementation(getRequiredInterfaces()[0].getProvider(), String.class); + _integer = aScope.retrieveInterfaceImplementation(getRequiredInterfaces()[1].getProvider(), Integer.class); + return _random; + } + + public String getString() { + return _string; + } + + public Integer getInteger() { + return _integer; } @Override - protected void doStop() { - track("stop." + getName()); + protected void doStop(Object aRuntime) { + track("stop." + getName()); + if ( _random != (Double)aRuntime) { + throw new IllegalArgumentException("Wrong runtime: expected " + _random + " but got " + + aRuntime); + } } private void track(String aString) {