From daeae2e98a52a55eeb22b43bac1e12b643a6f14e Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 5 Jun 2014 12:34:23 +0200 Subject: [PATCH] #192 - Added test case to show that mapping lookup works. The test case added shows that the mapping lookup also works if the method invoked is referred to via a mapped sub type. --- .../mvc/ControllerLinkBuilderUnitTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java b/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java index 1fac26d6..db525d42 100644 --- a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java @@ -355,6 +355,16 @@ public class ControllerLinkBuilderUnitTest extends TestUtils { assertThat(link.getHref(), endsWith("/something/with%20blank/foo")); } + /** + * @see #192 + */ + @Test + public void usesRootMappingOfTargetClassForMethodsOfParentClass() { + + Link link = linkTo(methodOn(ChildControllerWithRootMapping.class).someEmptyMappedMethod()).withSelfRel(); + assertThat(link.getHref(), endsWith("/root")); + } + private static UriComponents toComponents(Link link) { return UriComponentsBuilder.fromUriString(link.getHref()).build(); } @@ -445,4 +455,15 @@ public class ControllerLinkBuilderUnitTest extends TestUtils { @RequestMapping("/child") interface ChildWithTypeMapping extends ParentWithMethod {} + + interface ParentControllerWithoutRootMapping { + + @RequestMapping + Object someEmptyMappedMethod(); + } + + @RequestMapping("/root") + interface ChildControllerWithRootMapping extends ParentControllerWithoutRootMapping { + + } }