ApplicationDescriptor desc = ApplicationDescriptor.create(appClass);
ControllersDescriptor controllerDesc = new ControllersDescriptor(desc);
ControllerResolver<ControllerHandler> resolver = controllerDesc.getResolver();
//
ControllerHandler handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set());
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set(), handler.getParameterNames());
//
handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set("foo"));
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set("foo"), handler.getParameterNames());
//
handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set("foo", "bar"));
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set("foo", "bar"), handler.getParameterNames());
//
handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set("bar"));
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set("foo", "bar"), handler.getParameterNames());
//
handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set("bar"));
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set("foo", "bar"), handler.getParameterNames());
//
handler = resolver.resolveMethod(Phase.VIEW, "A.m", Tools.<String>set("daa"));
assertEquals("m", handler.getName());
assertEquals(Tools.<String>set(), handler.getParameterNames());
}