X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FApplication.java;h=5e771b326464676d3729ffed4d2be370ea21f6f2;hb=436718e7b7ee0bb9f37db496dbde5c011d5f84e3;hp=ca1467cc0fd4afde4ff9327bfcff49668b91035e;hpb=2768257dc89eeac0398e8b5ec42b0ff031e0e344;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 ca1467cc..5e771b32 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,24 +24,39 @@ import org.wamblee.system.core.RequiredInterface; import org.wamblee.test.EventTracker; public class Application extends AbstractComponent { - public static RequiredInterface[] required(boolean aOptional) { + public static RequiredInterface[] required(boolean aOptional, String aPrefix) { return new RequiredInterface[] { - new DefaultRequiredInterface("string", String.class, aOptional), - new DefaultRequiredInterface("integer", Integer.class, aOptional) + new DefaultRequiredInterface(aPrefix + "string", String.class, aOptional), + new DefaultRequiredInterface(aPrefix + "integer", Integer.class, aOptional) }; } + + public static RequiredInterface[] required(boolean aOptional) { + return required(aOptional, ""); + } + private EventTracker _tracker; private String _string; - private Integer _integer; + private Integer _integer; + private double _random; public Application() { - super("application", new ProvidedInterface[0], required(false)); + this("application"); } + public Application(String aName) { + this(aName, ""); + } + + public Application(String aName, String aPrefix) { + super(aName, new ProvidedInterface[0], required(false, aPrefix)); + _random = Math.random(); + } + public Application(boolean aIsOptinal) { - super("application", new ProvidedInterface[0], required(true)); + super("application", new ProvidedInterface[0], required(true, "")); } public Application(EventTracker aTracker) { @@ -50,10 +65,11 @@ public class Application extends AbstractComponent { } @Override - protected void doStart() { + protected Object doStart(Scope aScope) { track("start." + getName()); - _string = getRequiredInterfaces()[0].getImplementation(String.class); - _integer = getRequiredInterfaces()[1].getImplementation(Integer.class); + _string = aScope.getInterfaceImplementation(getRequiredInterfaces()[0].getProvider(), String.class); + _integer = aScope.getInterfaceImplementation(getRequiredInterfaces()[1].getProvider(), Integer.class); + return _random; } public String getString() { @@ -65,8 +81,12 @@ public class Application extends AbstractComponent { } @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) {