source code formatting.
[utils] / system / general / src / test / java / org / wamblee / system / adapters / ClassConfigurationTest.java
index 2ac1484d8b867ca624c1747f60d4a0c769d611e2..5baaad55a877daaf21c4957a4032e8a4bda3a09c 100644 (file)
@@ -1,12 +1,12 @@
 /*
  * Copyright 2008 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.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  */
 package org.wamblee.system.adapters;
 
-import java.util.List;
-
-import junit.framework.TestCase;
-
 import org.wamblee.system.core.DefaultProvidedInterface;
-import org.wamblee.system.core.DefaultScope;
 import org.wamblee.system.core.ProvidedInterface;
 import org.wamblee.system.core.RequiredInterface;
-import org.wamblee.system.core.Scope;
+import org.wamblee.system.core.RequiredInterfaceComparator;
+
 import org.wamblee.test.AssertionUtils;
-import org.wamblee.test.EventTracker;
 
+import java.util.Collections;
+import java.util.List;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+  */
 public class ClassConfigurationTest extends AdapterTestCase {
+    /**
+     * DOCUMENT ME!
+     */
+    public void testConstructorConfig() {
+        ClassConfiguration       classConfig = new ClassConfiguration(X1.class);
+
+        ConstructorConfiguration config      = classConfig.getConstructorConfig()
+            .greedy();
+
+        ProvidedInterface        provided    = new DefaultProvidedInterface("arg",
+                String.class);
+        List<RequiredInterface>  required    = classConfig.getRequiredInterfaces();
+
+        assertEquals(1, required.size());
+        assertFalse(required.get(0).isOptional());
+
+        required.get(0).setProvider(provided);
+
+        scope.publishInterface(provided, "hello");
+        classConfig.create(scope);
+
+        AssertionUtils.assertEquals(new String[] { "x1(hello)" },
+            AdapterTestCase.EVENT_TRACKER.getEvents(Thread.currentThread())
+            .toArray());
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public void testConstructorConfigWithSetters() {
+        ClassConfiguration classConfig = new ClassConfiguration(X7.class);
+
+        classConfig.getConstructorConfig().select(Boolean.class);
+        classConfig.getObjectConfig().getSetterConfig().initAllSetters()
+        .values("setPort").setValue(0, 10);
+
+        ProvidedInterface       providedBoolean = new DefaultProvidedInterface("boolean",
+                Boolean.class);
+        ProvidedInterface       providedHost    = new DefaultProvidedInterface("host",
+                String.class);
+        List<RequiredInterface> required        = classConfig
+            .getRequiredInterfaces();
+
+        Collections.sort(required, new RequiredInterfaceComparator());
+        assertEquals(2, required.size());
+        assertEquals("arg0", required.get(0).getName());
 
+        required.get(0).setProvider(providedBoolean);
+        required.get(1).setProvider(providedHost);
 
-       public void testConstructorConfig() {
-               ClassConfiguration classConfig = new ClassConfiguration(X1.class);
-               
-               ConstructorConfiguration config = classConfig.getConstructorConfig()
-                               .greedy();
-               ProvidedInterface provided = new DefaultProvidedInterface("arg",
-                               String.class);
-               List<RequiredInterface> required = config.getRequiredInterfaces();
+        scope.publishInterface(providedBoolean, true);
+        scope.publishInterface(providedHost, "host.name.org");
 
-               assertEquals(1, required.size());
-               assertFalse(required.get(0).isOptional());
+        Object obj = classConfig.create(scope);
+        assertTrue(obj instanceof X7);
 
-               required.get(0).setProvider(provided);
+        X7 x7 = (X7) obj;
+        assertNotNull(x7.getBoolean());
+        assertTrue(x7.getBoolean());
+        assertNull(x7.getHost());
+        assertNull(x7.getPort());
 
-               provided.publish("hello", _scope);
-               config.create(_scope);
+        classConfig.inject(scope, obj);
 
-               AssertionUtils.assertEquals(new String[] { "x1(hello)" }, AdapterTestCase.EVENT_TRACKER
-                               .getEvents(Thread.currentThread()).toArray());
-       }
+        assertEquals("host.name.org", x7.getHost());
+        assertEquals(10, x7.getPort().intValue());
+    }
 }