public RouteMatch next() { if (!hasNext()) { throw new NoSuchElementException(); } Map<PathParam, String> parameters = next.getParameters(); Route route = next.route; next = null; return new RouteMatch(route, parameters); }
@Test public void testCaptureGroup() throws Exception { Router router = new Router(); Route r = router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching("a(.)c").captureGroup(true))); // assertEquals("/abc", r.matches(Collections.singletonMap(Names.A, "b")).render()); } }
@Test public void testBug() throws Exception { Router router = new Router(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^_]+"))); // This is a *known* bug assertNull(router.route("/_")); // This is expected assertEquals("/_", a.matches(Collections.singletonMap(Names.P, "/")).render()); // This is expected assertNull(router.route("/%5F")); assertNull(a.matches(Collections.singletonMap(Names.P, "_"))); }
@Test public void testParamPreservePath() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^/]+").preservePath(true))); // Route router.assertRoute(Collections.singletonMap(Names.P, "_"), "/_"); assertNull(router.route("//")); // Render assertNull(a.matches(Collections.singletonMap(Names.P, "/"))); }
@Test public void testPath() { Router router = new Router(); Route a1 = router.append("/{a}"); Route a2 = router.append("/a"); assertSame(a1, router.route("/a").getRoute()); assertSame(a1, router.route("/b").getRoute()); } }
@Test public void testFoo() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/a", RouteKind.CONNECT); Route b= a.append("/b"); // // assertEquals(Collections.singletonMap(QualifiedName.create("foo"), "bar"), router.route("/a")); assertNull(router.route("/a")); // router.assertRoute(b, "/a/b"); } }
@Override public void setUp() throws Exception { this.router = new RouterAssert(); Map<String, PathParam.Builder> params = Collections.singletonMap(Names.GTN_PATH, PathParam.matching(".*").preservePath(true)); portal = router.append("/private/{gtn:sitetype}/{gtn:sitename}{gtn:path}", params); group = router.append("/groups/{gtn:sitetype}/{gtn:sitename}{gtn:path}", params); user = router.append("/users/{gtn:sitetype}/{gtn:sitename}{gtn:path}", params); }
@Test public void testLang() throws Exception { Router router = new Router(); Route r = router.append("/{a}b", Collections.singletonMap(Names.A, PathParam.matching("(([A-Za-z]{2})/)?").preservePath(true))); // assertEquals("/fr/b", r.matches(Collections.singletonMap(Names.A, "fr/")).render()); assertEquals("/b", r.matches(Collections.singletonMap(Names.A, "")).render()); }
@Test public void testParamPreservePath() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^/]+").preservePath(true))); // Route router.assertRoute(Collections.singletonMap(Names.P, "_"), "/_"); assertNull(router.route("//")); // Render assertNull(a.matches(Collections.singletonMap(Names.P, "/"))); }
@Test public void testLang() throws Exception { Router router = new Router(); Route r = router.append("/{a}b", Collections.singletonMap(Names.A, PathParam.matching("(([A-Za-z]{2})/)?").preservePath(true))); // assertEquals("/fr/b", r.matches(Collections.singletonMap(Names.A, "fr/")).render()); assertEquals("/b", r.matches(Collections.singletonMap(Names.A, "")).render()); }
@Test public void testSimplePatternPathParam() throws Exception { Router router = new Router(); Route r = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("a"))); // assertEquals("/a", r.matches(Collections.singletonMap(Names.P, "a")).render()); assertNull(r.matches(Collections.singletonMap(Names.P, "ab"))); }
@Test public void testCaptureGroup() throws Exception { Router router = new Router(); Route r = router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching("a(.)c").captureGroup(true))); // assertEquals("/abc", r.matches(Collections.singletonMap(Names.A, "b")).render()); } }
@Test public void testPathParam() throws Exception { Router router = new Router(); Route r = router.append("/{p}"); // assertEquals("/a", r.matches(Collections.singletonMap(Names.P, "a")).render()); assertNull(r.matches(Collections.<String, String>emptyMap())); }
@Test public void testA() throws Exception { Router router = new Router(); Route r = router.append("/a"); // assertEquals("/a", r.matches(Collections.<String, String>emptyMap()).render()); }
@Test public void testAB() throws Exception { Router router = new Router(); Route r = router.append("/a/b"); // assertEquals("/a/b", r.matches(Collections.<String, String>emptyMap()).render()); }