use of jodd.madvoc.component.ActionsManager in project jodd by oblac.
the class ActionMethodParserTest method testMacros.
@Test
void testMacros() {
WebApp webapp = new WebApp();
webapp.start();
ActionsManager actionsManager = webapp.madvocContainer().lookupComponent(ActionsManager.class);
RootPackages rootPackages = webapp.madvocContainer().lookupComponent(RootPackages.class);
rootPackages.addRootPackageOf(this.getClass());
actionsManager.registerAction(ReAction.class, "macro", null);
ActionRuntime cfg = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/re/user/173/macro.html"));
assertNotNull(cfg);
assertEquals(ReAction.class, cfg.getActionClass());
assertEquals("/re/user/{id}/macro", cfg.getActionPath());
RouteChunk chunk = cfg.getRouteChunk();
assertNull(chunk.pathMacros());
chunk = chunk.parent();
assertEquals(1, chunk.pathMacros().macrosCount());
assertEquals("id", chunk.pathMacros().names()[0]);
assertNull(chunk.pathMacros().patterns()[0]);
actionsManager.registerAction(ReAction.class, "macro2", null);
cfg = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/re/user/image/173/png/macro2.html"));
assertNotNull(cfg);
assertEquals(ReAction.class, cfg.getActionClass());
assertEquals("/re/user/image/{id}/{fmt}/macro2", cfg.getActionPath());
chunk = cfg.getRouteChunk();
assertNull(chunk.pathMacros());
chunk = chunk.parent();
assertEquals(1, chunk.pathMacros().macrosCount());
assertEquals("fmt", chunk.pathMacros().names()[0]);
chunk = chunk.parent();
assertEquals(1, chunk.pathMacros().macrosCount());
assertEquals("id", chunk.pathMacros().names()[0]);
chunk = cfg.getRouteChunk();
assertNull(chunk.pathMacros());
actionsManager.registerAction(ReAction.class, "macro3", null);
cfg = actionsManager.lookup("POST", MadvocUtil.splitPathToChunks("/re/users/173/macro3"));
assertNotNull(cfg);
assertEquals(ReAction.class, cfg.getActionClass());
assertEquals("/re/users/{id}/macro3", cfg.getActionPath());
assertEquals("POST", cfg.getActionMethod());
chunk = cfg.getRouteChunk();
assertNull(chunk.pathMacros());
chunk = chunk.parent();
assertEquals(1, chunk.pathMacros().macrosCount());
assertEquals("id", chunk.pathMacros().names()[0]);
cfg = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/re/user/index.html"));
assertNull(cfg);
cfg = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/re/user/index/reindex/macro.html"));
assertNull(cfg);
cfg = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/re/users/173/macro3"));
assertNull(cfg);
assertEquals(3, actionsManager.getActionsCount());
}
use of jodd.madvoc.component.ActionsManager in project jodd by oblac.
the class ActionMethodParserTest method testMethod.
@Test
void testMethod() {
WebApp webapp = new WebApp();
webapp.start();
ActionMethodParser actionMethodParser = webapp.madvocContainer().lookupComponent(ActionMethodParser.class);
ActionRuntime cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo");
assertNotNull(cfg);
assertEquals(BooAction.class, cfg.getActionClass());
assertEquals("/boo.foo", cfg.getActionPath());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo1");
assertEquals("/boo.xxx", cfg.getActionPath());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo2");
assertEquals("/boo.foo2.xxx", cfg.getActionPath());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo3");
assertEquals("/boo", cfg.getActionPath());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo4");
assertEquals("/xxx", cfg.getActionPath());
assertNull(cfg.getActionMethod());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo41");
assertEquals("/xxx", cfg.getActionPath());
assertEquals("DELETE", cfg.getActionMethod());
cfg = parse(actionMethodParser, "fixtures.tst.BooAction#foo5");
assertEquals("/xxx.html", cfg.getActionPath());
assertEquals("POST", cfg.getActionMethod());
ActionsManager actionsManager = webapp.madvocContainer().lookupComponent(ActionsManager.class);
assertEquals("/xxx.html", actionsManager.lookupPathAlias("dude"));
}
use of jodd.madvoc.component.ActionsManager in project jodd by oblac.
the class ManualRegistrationTest method testManualAction_asArgument.
@Test
void testManualAction_asArgument() {
WebApp webApp = WebApp.createWebApp().start(madvoc -> madvoc.route().path("/hello").mapTo(BooAction.class, "foo1").bind().route().path("/world").mapTo(BooAction.class, "foo2").interceptBy(EchoInterceptor.class).bind().interceptor(EchoInterceptor.class, i -> i.setPrefixIn("====> ")));
ActionsManager actionsManager = webApp.madvocContainer().requestComponent(ActionsManager.class);
assertEquals(2, actionsManager.getActionsCount());
ActionRuntime actionRuntime = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/hello"));
assertNotNull(actionRuntime);
assertEquals(BooAction.class, actionRuntime.getActionClass());
assertEquals("foo1", actionRuntime.getActionClassMethod().getName());
actionRuntime = actionsManager.lookup("GET", MadvocUtil.splitPathToChunks("/world"));
assertNotNull(actionRuntime);
assertEquals(BooAction.class, actionRuntime.getActionClass());
assertEquals("foo2", actionRuntime.getActionClassMethod().getName());
}
Aggregations