(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / adapters / ConstructorConfigurationTest.java
index fe0ece622431a7850ab50585d37b510a57feac8a..3e5f5aa42dc685c4f040cd8062ef2494918a388b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008 the original author or authors.
+ * Copyright 2005-2010 the original author or authors.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,122 +20,144 @@ import java.util.List;
 import org.wamblee.system.core.DefaultProvidedInterface;
 import org.wamblee.system.core.ProvidedInterface;
 import org.wamblee.system.core.RequiredInterface;
+import org.wamblee.system.core.Scope;
 import org.wamblee.system.core.SystemAssemblyException;
 import org.wamblee.test.AssertionUtils;
 
+/**
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
 public class ConstructorConfigurationTest extends AdapterTestCase {
-
-       public void testGreedyUnique() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
-                               .greedy();
-               ProvidedInterface provided = new DefaultProvidedInterface("arg",
-                               String.class);
-               List<RequiredInterface> required = config.getRequiredInterfaces();
-
-               assertEquals(1, required.size());
-               assertFalse(required.get(0).isOptional());
-
-               required.get(0).setProvider(provided);
-
-               scope.publishInterface(provided, "hello");
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x1(hello)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
-
-       public void testGreedyNonUnique() {
-               try {
-                       ConstructorConfiguration config = new ConstructorConfiguration(
-                                       X2.class).greedy();
-               } catch (SystemAssemblyException e) {
-                       // e.printStackTrace();
-                       return;
-               }
-               fail();
-       }
-
-       public void testSpecificConstructor() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X2.class)
-                               .select(String.class);
-               ProvidedInterface provided = new DefaultProvidedInterface("arg",
-                               String.class);
-               List<RequiredInterface> required = config.getRequiredInterfaces();
-
-               assertEquals(1, required.size());
-               required.get(0).setProvider(provided);
-
-               scope.publishInterface(provided, "hello");
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x2(hello)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
-
-       public void testSetValue() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
-                               .greedy();
-               config.getParameters().setValue(0, "bla");
-
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x1(bla)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
-
-       public void testOptionalValueProvided() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
-                               .greedy();
-               config.getParameters().setOptional(0);
-               ProvidedInterface provided = new DefaultProvidedInterface("arg",
-                               String.class);
-               List<RequiredInterface> required = config.getRequiredInterfaces();
-
-               assertEquals(1, required.size());
-               required.get(0).setProvider(provided);
-
-               scope.publishInterface(provided, "hello");
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x1(hello)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
-
-       public void testOptionalValueMissing() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
-                               .greedy();
-               config.getParameters().setOptional(0);
-               assertTrue(config.getRequiredInterfaces().get(0).isOptional());
-
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x1(null)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
-
-       public void testIgnoredNonPublic() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X3.class)
-                               .greedy();
-               List<RequiredInterface> required = config.getRequiredInterfaces();
-               assertEquals(0, config.getParameters().getTypes().length);
-       }
-
-       public void testNonPublicConstructor() {
-               ConstructorConfiguration config = new ConstructorConfiguration(X3.class)
-                               .setNonPublic(true).greedy();
-               ProvidedInterface provided = new DefaultProvidedInterface("arg",
-                               String.class);
-               List<RequiredInterface> required = config.getRequiredInterfaces();
-
-               assertEquals(1, required.size());
-               assertFalse(required.get(0).isOptional());
-
-               required.get(0).setProvider(provided);
-
-               scope.publishInterface(provided, "hello");
-               config.create(scope);
-
-               AssertionUtils.assertEquals(new String[] { "x3(hello)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
+    public void testGreedyUnique() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
+            .greedy();
+        ProvidedInterface provided = new DefaultProvidedInterface("arg",
+            String.class);
+        List<RequiredInterface> required = config.getRequiredInterfaces();
+
+        assertEquals(1, required.size());
+        assertFalse(required.get(0).isOptional());
+
+        required.get(0).setProvider(provided);
+
+        Scope scope = getScope();
+        scope.publishInterface(provided, "hello");
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x1(hello)" },
+            AdapterTestCase.getEventTracker().getEvents(Thread.currentThread())
+                .toArray());
+    }
+
+    public void testGreedyNonUnique() {
+        try {
+            ConstructorConfiguration config = new ConstructorConfiguration(
+                X2.class).greedy();
+            ignoredVariable(config);
+        } catch (SystemAssemblyException e) {
+            // e.printStackTrace();
+            return;
+        }
+
+        fail();
+    }
+
+    private static void ignoredVariable(Object aObject) {
+        // for findbugs.
+    }
+
+    public void testSpecificConstructor() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X2.class)
+            .select(String.class);
+        ProvidedInterface provided = new DefaultProvidedInterface("arg",
+            String.class);
+        List<RequiredInterface> required = config.getRequiredInterfaces();
+
+        assertEquals(1, required.size());
+        required.get(0).setProvider(provided);
+
+        Scope scope = getScope();
+        scope.publishInterface(provided, "hello");
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x2(hello)" },
+            AdapterTestCase.getEventTracker().getEvents(Thread.currentThread())
+                .toArray());
+    }
+
+    public void testSetValue() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
+            .greedy();
+        config.getParameters().setValue(0, "bla");
+
+        Scope scope = getScope();
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x1(bla)" }, AdapterTestCase
+            .getEventTracker().getEvents(Thread.currentThread()).toArray());
+    }
+
+    public void testOptionalValueProvided() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
+            .greedy();
+        config.getParameters().setOptional(0);
+
+        ProvidedInterface provided = new DefaultProvidedInterface("arg",
+            String.class);
+        List<RequiredInterface> required = config.getRequiredInterfaces();
+
+        assertEquals(1, required.size());
+        required.get(0).setProvider(provided);
+
+        Scope scope = getScope();
+        scope.publishInterface(provided, "hello");
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x1(hello)" },
+            AdapterTestCase.getEventTracker().getEvents(Thread.currentThread())
+                .toArray());
+    }
+
+    public void testOptionalValueMissing() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X1.class)
+            .greedy();
+        config.getParameters().setOptional(0);
+        assertTrue(config.getRequiredInterfaces().get(0).isOptional());
+
+        Scope scope = getScope();
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x1(null)" },
+            AdapterTestCase.getEventTracker().getEvents(Thread.currentThread())
+                .toArray());
+    }
+
+    public void testIgnoredNonPublic() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X3.class)
+            .greedy();
+        assertEquals(0, config.getParameters().getTypes().length);
+    }
+
+    public void testNonPublicConstructor() {
+        ConstructorConfiguration config = new ConstructorConfiguration(X3.class)
+            .setNonPublic(true).greedy();
+        ProvidedInterface provided = new DefaultProvidedInterface("arg",
+            String.class);
+        List<RequiredInterface> required = config.getRequiredInterfaces();
+
+        assertEquals(1, required.size());
+        assertFalse(required.get(0).isOptional());
+
+        required.get(0).setProvider(provided);
+
+        Scope scope = getScope();
+        scope.publishInterface(provided, "hello");
+        config.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x3(hello)" },
+            AdapterTestCase.getEventTracker().getEvents(Thread.currentThread())
+                .toArray());
+    }
 }