public void testConstructorParametesUsedAsMandatoryProperties()
throws Exception{
final Component c1 = Components.ctor(CopyCommand.class);
final Component cc = Beans.beanComponent(c1, new String[]{"source","dest"});
final Container yan = createYanContainer();
verifyPropertyNotResolved(yan, cc);
yan.registerComponent(boolean.class, Components.value(true));
verifyPropertyNotResolved(yan, cc);
//System.out.println();
assertComponentInfo(c1, 2,
"0=class java.lang.String, 1=class java.lang.String", "",
tests.jfun.models.CopyCommand.class
);
assertComponentInfo(cc, 0, "",
"source=class java.lang.String, dest=class java.lang.String, force=boolean, options=class java.lang.String",
tests.jfun.models.CopyCommand.class
);
//System.out.println(jfun.yan.etc.Introspector.getComponentInfo(cc));
//System.out.println(jfun.yan.etc.Introspector.getExpectedProperties(c1));
final Component cc_src = cc.withProperty("source", Components.value("d:/"));
//System.out.println(jfun.yan.etc.Introspector.getComponentInfo(cc_src));
assertComponentInfo(cc_src, 0, "",
"dest=class java.lang.String, force=boolean, options=class java.lang.String",
tests.jfun.models.CopyCommand.class
);
verifyPropertyNotResolved(yan, cc_src);
final Component cc_src_dst = cc_src.withProperty("dest", Components.value("e:/abc"));
//System.out.println(jfun.yan.etc.Introspector.getComponentInfo(cc_src_dst));
assertComponentInfo(cc_src_dst, 0, "",
"force=boolean, options=class java.lang.String",
tests.jfun.models.CopyCommand.class
);
final CopyCommand cm = (CopyCommand)yan.instantiateComponent(cc_src_dst);
assertEquals("d:/", cm.getSource());
assertEquals("e:/abc", cm.getDest());
assertTrue(cm.isForce());
assertEquals("", cm.getOptions());
}