);
yan.verify();
assertEquals(String.class, yan.getInstance(Class.class));
}
public void testReturnVerification(){
final Container yan = createYanContainer();
yan.registerComponent(Class.class,
Components.returnVerification(Components.useKey("xxx").cast(String.class))
);
try{
yan.verify();
fail("should have failed with UnresolvedComponentException");
}
catch(UnresolvedComponentException e){
//e.printResolutionTrace(System.err);
assertTraceSize(e, 4);
assertEntry(e, 0, "useKey <xxx>");
assertEntry(e, 1, "cast <useKey <xxx>> as java.lang.String");
assertEntry(e, 2, "returnVerification <cast <useKey <xxx>> as java.lang.String>");
assertEntry(e, 3, "verify <class java.lang.Class>");
assertEquals("xxx", e.getComponentKey());
}
try{
yan.getInstance(Class.class);
fail("should have failed with UnresolvedComponentException");
}
catch(UnresolvedComponentException e){
assertTraceSize(e, 4);
assertEntry(e, 0, "useKey <xxx>");
assertEntry(e, 1, "cast <useKey <xxx>> as java.lang.String");
assertEntry(e, 2, "returnVerification <cast <useKey <xxx>> as java.lang.String>");
assertEntry(e, 3, "getInstance <class java.lang.Class>");
assertEquals("xxx", e.getComponentKey());
}
yan.registerValue("xxx",
Components.useKey("bad").subsume(int.class).incomplete());
yan.verify();
assertEquals(String.class, yan.getInstance(Class.class));
}