(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / core / AbstractComponentTest.java
index e65433bef09a70cfb8c93c34b52b05873fc25e6c..2fd48f6e4c08de37cb13d62aab3ddcb632db3f6c 100644 (file)
@@ -19,25 +19,50 @@ import junit.framework.TestCase;
 
 public class AbstractComponentTest extends TestCase {
 
-       public void testNotAllComponentsStarted() {
+       public void testNotAllInterfacesStarted() {
                try {
-                       Component component = new AbstractComponent("xx",
+                       Component<?> component = new AbstractComponent<Object>("xx",
                                        new ProvidedInterface[] { new DefaultProvidedInterface(
                                                        "xxx", String.class) }, new RequiredInterface[0]) {
                                @Override
-                               protected void doStart() {
+                               protected Object doStart(Scope aScope) {
                                        // Empty, not starting service.
+                                       return null; 
                                }
 
                                @Override
-                               protected void doStop() {
+                               protected void doStop(Object aRuntime) {
                                        // Empty.
                                }
                        };
-                       component.start();
+                       component.start(new DefaultScope(component.getProvidedInterfaces()));
                } catch (SystemAssemblyException e) {
+                       //e.printStackTrace();
                        return;
                }
                fail();
        }
+       
+       public void testUnexpectedServicesStarted() { 
+           try {
+            Component<?> component = new AbstractComponent<Object>("xx",
+                    new ProvidedInterface[0], new RequiredInterface[0]) {
+                @Override
+                protected Object doStart(Scope aScope) {
+                    addInterface(new DefaultProvidedInterface("x", Integer.class), 100, aScope);
+                    return null; 
+                }
+
+                @Override
+                protected void doStop(Object aRuntime) {
+                    // Empty.
+                }
+            };
+            component.start(new DefaultScope(component.getProvidedInterfaces()));
+        } catch (SystemAssemblyException e) {
+            //e.printStackTrace();
+            return;
+        }
+        fail();
+       }
 }