(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / adapters / SetterConfigurationTest.java
index 730dfe6d84329d2d284999a72ccdaf386385af8d..aebdc3dffee1d3c742a706432cfcb8dd258b0045 100644 (file)
@@ -33,14 +33,15 @@ public class SetterConfigurationTest extends AdapterTestCase {
 
        public void testOneSetter() {
                SetterConfiguration config = new SetterConfiguration(X5.class);
+               config.initAllSetters();
                List<RequiredInterface> required = config.getRequiredInterfaces();
                assertEquals(1, required.size());
-               assertEquals("value", required.get(0).getName());
+               assertEquals("setValue.0", required.get(0).getName());
 
                ProvidedInterface provided = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided);
-               provided.publish("hello", _scope);
+               _scope.publishInterface(provided, "hello");
 
                X5 obj = new X5();
                assertNull(obj.getValue());
@@ -51,6 +52,7 @@ public class SetterConfigurationTest extends AdapterTestCase {
        public void testPrivateSetter() {
                SetterConfiguration config = new SetterConfiguration(X5.class);
                config.setNonPublic(true);
+               config.initAllSetters();
                List<RequiredInterface> required = new ArrayList<RequiredInterface>(
                                config.getRequiredInterfaces());
                Collections.sort(required, new Comparator<RequiredInterface>() {
@@ -60,20 +62,20 @@ public class SetterConfigurationTest extends AdapterTestCase {
                        }
                });
                assertEquals(2, required.size());
-               assertEquals("value", required.get(0).getName());
-               assertEquals("xyz", required.get(1).getName());
+               assertEquals("setValue.0", required.get(0).getName());
+               assertEquals("setXyz.0", required.get(1).getName());
 
                ProvidedInterface providedString = new DefaultProvidedInterface(
                                "janse", String.class);
                assertTrue(required.get(0).implementedBy(providedString));
                required.get(0).setProvider(providedString);
-               providedString.publish("hello", _scope);
+               _scope.publishInterface(providedString, "hello");
 
                ProvidedInterface providedInt = new DefaultProvidedInterface("xxx",
                                Integer.class);
                assertTrue(required.get(1).implementedBy(providedInt));
                required.get(1).setProvider(providedInt);
-               providedInt.publish(100, _scope);
+               _scope.publishInterface(providedInt, 100);
 
                X5 obj = new X5();
                assertNull(obj.getValue());
@@ -86,6 +88,7 @@ public class SetterConfigurationTest extends AdapterTestCase {
        public void testInheritance() {
                SetterConfiguration config = new SetterConfiguration(X9.class);
                config.setNonPublic(true);
+               config.initAllSetters();
                List<RequiredInterface> required = new ArrayList<RequiredInterface>(
                                config.getRequiredInterfaces());
                Collections.sort(required, new Comparator<RequiredInterface>() {
@@ -95,27 +98,27 @@ public class SetterConfigurationTest extends AdapterTestCase {
                        }
                });
                assertEquals(3, required.size());
-               assertEquals("flag", required.get(0).getName());
-               assertEquals("value", required.get(1).getName());
-               assertEquals("xyz", required.get(2).getName());
+               assertEquals("setFlag.0", required.get(0).getName());
+               assertEquals("setValue.0", required.get(1).getName());
+               assertEquals("setXyz.0", required.get(2).getName());
 
                ProvidedInterface providedBoolean = new DefaultProvidedInterface(
                                "janse", Boolean.class);
                assertTrue(required.get(0).implementedBy(providedBoolean));
                required.get(0).setProvider(providedBoolean);
-               providedBoolean.publish(true, _scope);
+               _scope.publishInterface(providedBoolean, true);
 
                ProvidedInterface providedString = new DefaultProvidedInterface(
                                "janse", String.class);
                assertTrue(required.get(1).implementedBy(providedString));
                required.get(1).setProvider(providedString);
-               providedString.publish("hello", _scope);
+               _scope.publishInterface(providedString, "hello");
 
                ProvidedInterface providedInt = new DefaultProvidedInterface("xxx",
                                Integer.class);
                assertTrue(required.get(2).implementedBy(providedInt));
                required.get(2).setProvider(providedInt);
-               providedInt.publish(100, _scope);
+               _scope.publishInterface(providedInt, 100);
 
                X9 obj = new X9();
                assertNull(obj.getValue());
@@ -128,22 +131,22 @@ public class SetterConfigurationTest extends AdapterTestCase {
        }
 
        public void testMultipleSetters() {
-               SetterConfiguration config = new SetterConfiguration(X6.class);
+               SetterConfiguration config = new SetterConfiguration(X6.class).initAllSetters();
                List<RequiredInterface> required = config.getRequiredInterfaces();
                Collections.sort(required, new RequiredInterfaceComparator());
                assertEquals(2, required.size());
-               assertEquals("host", required.get(0).getName());
-               assertEquals("port", required.get(1).getName());
+               assertEquals("setHost.0", required.get(0).getName());
+               assertEquals("setPort.0", required.get(1).getName());
 
                ProvidedInterface provided0 = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided0);
-               provided0.publish("hello", _scope);
+               _scope.publishInterface(provided0, "hello");
 
                ProvidedInterface provided1 = new DefaultProvidedInterface("port",
                                Integer.class);
                required.get(1).setProvider(provided1);
-               provided1.publish(10, _scope);
+               _scope.publishInterface(provided1, 10);
 
                X6 obj = new X6();
                assertNull(obj.getHost());
@@ -155,15 +158,15 @@ public class SetterConfigurationTest extends AdapterTestCase {
        }
 
        public void testInvokeWrongType() {
-               final SetterConfiguration config = new SetterConfiguration(X5.class);
+               final SetterConfiguration config = new SetterConfiguration(X5.class).initAllSetters();
                List<RequiredInterface> required = config.getRequiredInterfaces();
                assertEquals(1, required.size());
-               assertEquals("value", required.get(0).getName());
+               assertEquals("setValue.0", required.get(0).getName());
 
                ProvidedInterface provided = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided);
-               provided.publish("hello", _scope);
+               _scope.publishInterface(provided, "hello");
 
                final X6 obj = new X6();
                AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
@@ -175,8 +178,8 @@ public class SetterConfigurationTest extends AdapterTestCase {
        }
 
        public void testSetExplicitValue() {
-               SetterConfiguration config = new SetterConfiguration(X5.class);
-               config.values("value").setValue(0, "bladibla");
+               SetterConfiguration config = new SetterConfiguration(X5.class).initAllSetters();
+               config.values("setValue").setValue(0, "bladibla");
 
                List<RequiredInterface> required = config.getRequiredInterfaces();
                assertEquals(0, required.size());
@@ -206,16 +209,16 @@ public class SetterConfigurationTest extends AdapterTestCase {
 
        public void testAddByName() {
                SetterConfiguration config = new SetterConfiguration(X6.class);
-               config.clear().add("host");
+               config.clear().add("setHost");
                List<RequiredInterface> required = config.getRequiredInterfaces();
                Collections.sort(required, new RequiredInterfaceComparator());
                assertEquals(1, required.size());
-               assertEquals("host", required.get(0).getName());
+               assertEquals("setHost.0", required.get(0).getName());
 
                ProvidedInterface provided0 = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided0);
-               provided0.publish("hello", _scope);
+               _scope.publishInterface(provided0, "hello");
 
                X6 obj = new X6();
                assertNull(obj.getHost());
@@ -228,16 +231,16 @@ public class SetterConfigurationTest extends AdapterTestCase {
        
        public void testAddByType() { 
                SetterConfiguration config = new SetterConfiguration(X6.class);
-               config.clear().add(String.class);
+               config.clear().addSetter(String.class);
                List<RequiredInterface> required = config.getRequiredInterfaces();
                Collections.sort(required, new RequiredInterfaceComparator());
                assertEquals(1, required.size());
-               assertEquals("host", required.get(0).getName());
+               assertEquals("setHost.0", required.get(0).getName());
 
                ProvidedInterface provided0 = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided0);
-               provided0.publish("hello", _scope);
+               _scope.publishInterface(provided0, "hello");
 
                X6 obj = new X6();
                assertNull(obj.getHost());
@@ -260,7 +263,7 @@ public class SetterConfigurationTest extends AdapterTestCase {
                
                config.setNonPublic(true);
                config.clear();
-               config.add("xyz");
+               config.add("setXyz");
                assertEquals(1, config.getRequiredInterfaces().size());
        }
 
@@ -277,7 +280,7 @@ public class SetterConfigurationTest extends AdapterTestCase {
                AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
                        @Override
                        public void run() throws Exception {
-                               config.add(DataSource.class);
+                               config.addSetter(DataSource.class);
                        }
                }, IllegalArgumentException.class);
        }
@@ -288,23 +291,23 @@ public class SetterConfigurationTest extends AdapterTestCase {
                AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
                        @Override
                        public void run() throws Exception {
-                               config.add(String.class);
+                               config.addSetter(String.class);
                        }
                }, IllegalArgumentException.class);
        }
 
        public void testRemove() {
-               SetterConfiguration config = new SetterConfiguration(X6.class);
-               config.remove("port");
+               SetterConfiguration config = new SetterConfiguration(X6.class).initAllSetters();
+               config.remove("setPort");
                List<RequiredInterface> required = config.getRequiredInterfaces();
                Collections.sort(required, new RequiredInterfaceComparator());
                assertEquals(1, required.size());
-               assertEquals("host", required.get(0).getName());
+               assertEquals("setHost.0", required.get(0).getName());
 
                ProvidedInterface provided0 = new DefaultProvidedInterface("janse",
                                String.class);
                required.get(0).setProvider(provided0);
-               provided0.publish("hello", _scope);
+               _scope.publishInterface(provided0, "hello");
 
                X6 obj = new X6();
                assertNull(obj.getHost());
@@ -314,6 +317,28 @@ public class SetterConfigurationTest extends AdapterTestCase {
                assertEquals("hello", obj.getHost());
                assertNull(obj.getPort());
        }
+       
+       public void testRemoveByMethodObject() throws NoSuchMethodException {
+        SetterConfiguration config = new SetterConfiguration(X6.class).initAllSetters();
+        config.remove(X6.class.getMethod("setPort", Integer.class));
+        List<RequiredInterface> required = config.getRequiredInterfaces();
+        Collections.sort(required, new RequiredInterfaceComparator());
+        assertEquals(1, required.size());
+        assertEquals("setHost.0", required.get(0).getName());
+
+        ProvidedInterface provided0 = new DefaultProvidedInterface("janse",
+                String.class);
+        required.get(0).setProvider(provided0);
+        _scope.publishInterface(provided0, "hello");
+
+        X6 obj = new X6();
+        assertNull(obj.getHost());
+        assertNull(obj.getPort());
+
+        config.inject(_scope, obj);
+        assertEquals("hello", obj.getHost());
+        assertNull(obj.getPort());
+    }
 
        public void testRemoveNonExisting() {
                final SetterConfiguration config = new SetterConfiguration(X6.class);
@@ -327,7 +352,7 @@ public class SetterConfigurationTest extends AdapterTestCase {
        }
        
        public void testOverridingSetters() { 
-               SetterConfiguration config = new SetterConfiguration(X10.class);
+               SetterConfiguration config = new SetterConfiguration(X10.class).initAllSetters();
                assertEquals(2, config.getRequiredInterfaces().size());
                List<Method> methods = config.getSetters(); 
                assertEquals(2, methods.size());