[jboss-cvs] JBossAS SVN: r70217 - in projects/microcontainer/trunk/kernel/src: tests/org/jboss/test/kernel/config/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 28 11:41:33 EST 2008
Author: kabir.khan at jboss.com
Date: 2008-02-28 11:41:32 -0500 (Thu, 28 Feb 2008)
New Revision: 70217
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
Log:
Test and fix the new BeanMetaDataBuilder.addPropertyMetaData() methods
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2008-02-28 16:07:34 UTC (rev 70216)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/builder/BeanMetaDataBuilderImpl.java 2008-02-28 16:41:32 UTC (rev 70217)
@@ -254,7 +254,14 @@
public BeanMetaDataBuilder addPropertyMetaData(String name, Map<ValueMetaData, ValueMetaData> value)
{
Set<PropertyMetaData> properties = getProperties();
- properties.add(new AbstractPropertyMetaData(name, value));
+ if (value instanceof ValueMetaData)
+ {
+ properties.add(new AbstractPropertyMetaData(name, (ValueMetaData)value));
+ }
+ else
+ {
+ properties.add(new AbstractPropertyMetaData(name, value));
+ }
return this;
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-02-28 16:07:34 UTC (rev 70216)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/BeanMetaDataBuilderTestCase.java 2008-02-28 16:41:32 UTC (rev 70217)
@@ -23,10 +23,15 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import junit.framework.Test;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ValueMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.plugins.deployment.AbstractKernelDeployer;
@@ -35,7 +40,6 @@
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.test.kernel.config.support.SimpleBean;
import org.jboss.test.kernel.config.support.SimpleLifecycleBean;
-
/**
* Builder TestCase.
*
@@ -184,4 +188,72 @@
deployer.undeploy(deployment);
}
+ public void testCollectionProperties() throws Throwable
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("CollectionBean", SimpleBean.class.getName());
+
+ List<ValueMetaData> array = builder.createArray();
+ array.add(builder.createValue(new Integer(5)));
+ array.add(builder.createValue(new Integer(10)));
+ builder.addPropertyMetaData("array", array);
+
+ List<ValueMetaData> list = builder.createList();
+ list.add(builder.createValue("One"));
+ list.add(builder.createValue("Two"));
+ builder.addPropertyMetaData("list", list);
+
+ Set<ValueMetaData> set = builder.createSet();
+ set.add(builder.createValue("En"));
+ set.add(builder.createValue("To"));
+ builder.addPropertyMetaData("set", set);
+
+ Collection<ValueMetaData> collection = builder.createCollection();
+ collection.add(builder.createValue("Eins"));
+ collection.add(builder.createValue("Zwei"));
+ builder.addPropertyMetaData("collection", collection);
+
+ Map<ValueMetaData, ValueMetaData> map = builder.createMap();
+ map.put(builder.createValue("One"), builder.createValue("Uno"));
+ map.put(builder.createValue("Two"), builder.createValue("Dos"));
+ builder.addPropertyMetaData("map", map);
+
+ AbstractKernelDeployment deployment = new AbstractKernelDeployment();
+ deployment.setBeans(Arrays.asList(builder.getBeanMetaData()));
+
+ Kernel kernel = bootstrap();
+ KernelController controller = kernel.getController();
+ AbstractKernelDeployer deployer = new AbstractKernelDeployer(kernel);
+
+ deployer.deploy(deployment);
+
+ Object o = controller.getInstalledContext("CollectionBean").getTarget();
+ assertNotNull(o);
+ assertInstanceOf(o, SimpleBean.class);
+ SimpleBean bean = (SimpleBean)o;
+
+ Object[] arr = bean.getArray();
+ assertEquals(2, arr.length);
+ assertEquals(5, arr[0]);
+ assertEquals(10, arr[1]);
+
+ List<?> lst = bean.getList();
+ assertEquals(2, lst.size());
+ assertEquals("One", lst.get(0));
+ assertEquals("Two", lst.get(1));
+
+ Set<?> st = bean.getSet();
+ assertEquals(2, lst.size());
+ assertTrue(st.contains("En"));
+ assertTrue(st.contains("To"));
+
+ Collection<?> coll = bean.getCollection();
+ assertEquals(2, lst.size());
+ assertTrue(coll.contains("Eins"));
+ assertTrue(coll.contains("Zwei"));
+
+ Map<?, ?> mp = bean.getMap();
+ assertEquals(2, lst.size());
+ assertEquals("Uno", mp.get("One"));
+ assertEquals("Dos", mp.get("Two"));
+ }
}
More information about the jboss-cvs-commits
mailing list