Beispiel #1
0
  @Test
  public void missingRoute() throws Exception {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/foo").to(controller, "foo")));
    router.bindController(controller);

    assertThat(router.getRouteFor(HttpMethod.GET, "/bar").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo").getControllerObject())
        .isEqualTo(controller);
  }
Beispiel #2
0
  @Test
  public void routeMissingBecauseOfBadMethod() throws Exception {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/foo").to(controller, "foo")));
    router.bindController(controller);

    assertThat(router.getRouteFor(HttpMethod.PUT, "/foo").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.DELETE, "/foo").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.POST, "/foo").isUnbound()).isTrue();
  }
Beispiel #3
0
  @Test
  public void unbindTest() {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/foo/{path+}").to(controller, "foo")));
    router.bindController(controller);

    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/bar").isUnbound()).isFalse();

    router.unbindController(controller);
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/bar").isUnbound()).isTrue();
  }
Beispiel #4
0
  @Test
  public void routeWithPathParameter() throws Exception {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/foo/{id}").to(controller, "foo")));
    router.bindController(controller);

    assertThat(router.getRouteFor(HttpMethod.GET, "/foo").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/").isUnbound()).isTrue();
    Route route = router.getRouteFor(HttpMethod.GET, "/foo/test");
    assertThat(route.isUnbound()).isFalse();
    assertThat(route.getPathParametersEncoded("/foo/test").get("id")).isEqualToIgnoringCase("test");
  }
Beispiel #5
0
  /** Test made to reproduce #248. */
  @Test
  public void routeWithRegex() {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/{type<[0-9]+>}").to(controller, "foo")));
    router.bindController(controller);

    Route route = router.getRouteFor(HttpMethod.GET, "/99");
    assertThat(route).isNotNull();
    assertThat(route.getPathParametersEncoded("/99").get("type")).isEqualToIgnoringCase("99");

    route = router.getRouteFor(HttpMethod.GET, "/xx");
    assertThat(route.isUnbound()).isTrue();
  }
Beispiel #6
0
  @Test
  public void routeWithTwoPathParameters() throws Exception {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder()
                .route(HttpMethod.GET)
                .on("/foo/{id}/{email}")
                .to(controller, "foo")));
    router.bindController(controller);

    Route route = router.getRouteFor(HttpMethod.GET, "/foo/1234/[email protected]");
    assertThat(route).isNotNull();
    assertThat(route.getPathParametersEncoded("/foo/1234/[email protected]").get("id"))
        .isEqualToIgnoringCase("1234");
    assertThat(route.getPathParametersEncoded("/foo/1234/[email protected]").get("email"))
        .isEqualToIgnoringCase("*****@*****.**");
  }
Beispiel #7
0
  @Test
  public void subRouteAsParameter() throws Exception {
    FakeController controller = new FakeController();
    controller.setRoutes(
        ImmutableList.of(
            new RouteBuilder().route(HttpMethod.GET).on("/foo/{path+}").to(controller, "foo")));
    router.bindController(controller);

    assertThat(router.getRouteFor(HttpMethod.GET, "/foo").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/").isUnbound()).isTrue();
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/bar").isUnbound()).isFalse();
    assertThat(router.getRouteFor(HttpMethod.GET, "/foo/bar").getControllerObject())
        .isEqualTo(controller);

    Route route = router.getRouteFor(HttpMethod.GET, "/foo/bar/baz");
    assertThat(route).isNotNull();
    assertThat(route.getControllerObject()).isEqualTo(controller);

    assertThat(route.getPathParametersEncoded("/foo/bar/baz").get("path"))
        .isEqualToIgnoringCase("bar/baz");
  }