final String name = "Jack Nicolson";
yan.registerValue(name);
assertEquals(name, yan.getInstance("target"));
}
public void testFactory(){
final Container yan = createYanContainer();
final Component mycache =
Components.ctor(MyCache.class,
new Class[]{String.class, int.class});
final Component factory =
mycache.factory(ICacheFactory.class);
yan.registerComponent("target", factory);
final ICacheFactory ifactory =
(ICacheFactory)yan.getInstance("target");
final tests.jfun.yan.testmodel.ICache icache = ifactory.createCache("tom", 10);
assertEquals(MyCache.class, icache.getClass());
assertEquals("tom", icache.getName());
assertEquals(10, icache.getCapacity());
try{
yan.verify();
fail("should have failed with IrresolveableArgumentException");
}
catch(IrresolveableArgumentException e){
assertTraceSize(e, 3);
assertEntry(e, 1, "tests.jfun.yan.testmodel.ICacheFactory");
assertEquals(0, e.getOrdinalPosition());
assertEquals(String.class, e.getParameterType());
}
yan.registerValue("someone");
try{
yan.verify();
fail("should have failed with IrresolveableArgumentException");
}
catch(IrresolveableArgumentException e){
assertTraceSize(e, 3);
assertEntry(e, 1, "tests.jfun.yan.testmodel.ICacheFactory");
assertEquals(1, e.getOrdinalPosition());
assertEquals(int.class, e.getParameterType());
}
yan.registerValue(new Integer(0));
yan.verify();
final tests.jfun.yan.testmodel.ICache icache2 = ifactory.createCache("jack", 11);
assertEquals(MyCache.class, icache2.getClass());
assertEquals("jack", icache2.getName());
assertEquals(11, icache2.getCapacity());