bean3P1.setName("properties");
bean3P1.setDescription("The bean properties");
bean3P1.setPropertyType("java.util.Set<IPropertyMetaData>");
bean3.addProperty(bean3P1);
Simple simple1 = new Simple();
simple1.setBigDecimalValue(new BigDecimal(123456));
Simple simple2 = new Simple();
simple2.setBigDecimalValue(new BigDecimal(222222));
SimpleUnannotated simple3 = new SimpleUnannotated();
simple3.setBigDecimalValue(new BigDecimal(333333));
// Setup the bean name mappings
BeanMetaDataICF.setBean("SimpleBean#1", simple1);
BeanMetaDataICF.setBean("SimpleBean#2", simple2);
BeanMetaDataICF.setBean("SimpleUnannotated#3", simple3);
List<IBeanMetaDataFactory> beanFactories = new ArrayList<IBeanMetaDataFactory>();
beanFactories.add(bean1);
beanFactories.add(bean2);
beanFactories.add(bean3);
ad.setBeanFactories(beanFactories);
ManagedObject mo = mof.initManagedObject(ad, "KernelDeployment", null);
ManagedProperty beanFactoriesMP = mo.getProperty("beanFactories");
assertNotNull("beanFactories MP", beanFactoriesMP);
Object beanFactoriesMPValue = beanFactoriesMP.getValue();
getLog().debug("beanFactories MP value: "+beanFactoriesMPValue);
assertTrue(beanFactoriesMPValue instanceof CollectionValue);
// The beanFactories
CollectionValue cv = CollectionValue.class.cast(beanFactoriesMPValue);
MetaValue[] cvs = cv.getElements();
assertEquals(3, cv.getSize());
// ABeanMetaData ManagedObject for SimpleBean#1
MetaValue mv0 = cvs[0];
assertTrue(mv0 instanceof GenericValue);
GenericValue gv0 = GenericValue.class.cast(mv0);
Object gv0Value = gv0.getValue();
assertTrue(gv0Value instanceof ManagedObject);
ManagedObject mo0 = ManagedObject.class.cast(gv0Value);
assertEquals(bean1, mo0.getAttachment());
ManagedProperty bigDecimalValueMP = mo0.getProperty("bigDecimalValue");
assertNotNull(bigDecimalValueMP);
assertEquals(SimpleValueSupport.wrap(new BigDecimal(123456)), bigDecimalValueMP.getValue());
bigDecimalValueMP.setValue(SimpleValueSupport.wrap(new BigDecimal(987654)));
assertEquals(new BigDecimal(987654), simple1.getBigDecimalValue());
// ABeanMetaData ManagedObject for SimpleBean#2
MetaValue mv1 = cvs[1];
assertTrue(mv1 instanceof GenericValue);
GenericValue gv1 = GenericValue.class.cast(mv1);
Object gv1Value = gv1.getValue();
assertTrue(gv1Value instanceof ManagedObject);
ManagedObject mo1 = ManagedObject.class.cast(gv1Value);
ManagedProperty bigDecimalValueMP1 = mo1.getProperty("bigDecimalValue");
assertNotNull(bigDecimalValueMP1);
assertEquals(SimpleValueSupport.wrap(new BigDecimal(222222)), bigDecimalValueMP1.getValue());
bigDecimalValueMP1.setValue(SimpleValueSupport.wrap(new BigDecimal(12222221)));
assertEquals(new BigDecimal(12222221), simple2.getBigDecimalValue());
// ABeanMetaData ManagedObject for SimpleUnannotated#3
MetaValue mv2 = cvs[2];
assertTrue(mv2 instanceof GenericValue);
GenericValue gv2 = GenericValue.class.cast(mv2);