@Test
public void instantiate() throws Exception {

    Map<String,Object> args = map("text", "hello", "flag", true);
    assertEquals("C:hello/true", instantiate(C.class, args).toString());
    args.put("value", "main");
    assertEquals("I:main/hello/true", instantiate(I.class, args).toString());
    assertEquals("C:goodbye/false", instantiate(C.class, map("text", "goodbye")).toString());
}