From 2daad8aab7928377ad448ac07548c08b655f702b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Fri, 22 Jun 2018 08:33:45 +0200 Subject: [PATCH] Use provider for group sub resources --- .../api/v2/resources/GroupRootResource.java | 12 +++--- .../v2/resources/GroupRootResourceTest.java | 38 ++++++++++--------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupRootResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupRootResource.java index 8909dcdd0c..f18df472a2 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupRootResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupRootResource.java @@ -1,6 +1,7 @@ package sonia.scm.api.v2.resources; import javax.inject.Inject; +import javax.inject.Provider; import javax.ws.rs.Path; @Path(GroupRootResource.GROUPS_PATH_V2) @@ -8,22 +9,23 @@ public class GroupRootResource { public static final String GROUPS_PATH_V2 = "v2/groups/"; - private final GroupCollectionResource groupCollectionResource; - private final GroupResource groupResource; + private final Provider groupCollectionResource; + private final Provider groupResource; @Inject - public GroupRootResource(GroupCollectionResource groupCollectionResource, GroupResource groupResource) { + public GroupRootResource(Provider groupCollectionResource, + Provider groupResource) { this.groupCollectionResource = groupCollectionResource; this.groupResource = groupResource; } @Path("") public GroupCollectionResource getGroupCollectionResource() { - return groupCollectionResource; + return groupCollectionResource.get(); } @Path("{id}") public GroupResource getGroupResource() { - return groupResource; + return groupResource.get(); } } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/GroupRootResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/GroupRootResourceTest.java index 80693838b8..a29057ff31 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/GroupRootResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/GroupRootResourceTest.java @@ -45,36 +45,33 @@ public class GroupRootResourceTest { private Dispatcher dispatcher = MockDispatcherFactory.createDispatcher(); - @Mock - private GroupManager groupManager; @Mock private UriInfo uriInfo; @Mock private UriInfoStore uriInfoStore; - @InjectMocks - GroupDtoToGroupMapperImpl dtoToGroupMapper; - @InjectMocks - GroupToGroupDtoMapperImpl groupToDtoMapper; - @InjectMocks - GroupCollectionToDtoMapper groupCollectionToDtoMapper; + @Mock + private GroupManager groupManager; + @InjectMocks + private GroupDtoToGroupMapperImpl dtoToGroupMapper; + @InjectMocks + private GroupToGroupDtoMapperImpl groupToDtoMapper; + @InjectMocks + private GroupCollectionToDtoMapper groupCollectionToDtoMapper; - ArgumentCaptor groupCaptor = ArgumentCaptor.forClass(Group.class); + private ArgumentCaptor groupCaptor = ArgumentCaptor.forClass(Group.class); @Before public void prepareEnvironment() throws IOException, GroupException { initMocks(this); doNothing().when(groupManager).create(groupCaptor.capture()); - Group group = new Group(); - group.setName("admin"); - group.setCreationDate(0L); - group.setMembers(Collections.singletonList("user")); + Group group = createDummyGroup(); when(groupManager.get("admin")).thenReturn(group); GroupCollectionResource groupCollectionResource = new GroupCollectionResource(groupManager, dtoToGroupMapper, groupToDtoMapper, groupCollectionToDtoMapper); GroupResource groupResource = new GroupResource(groupManager, groupToDtoMapper); - GroupRootResource groupRootResource = new GroupRootResource(groupCollectionResource, groupResource); + GroupRootResource groupRootResource = new GroupRootResource(MockProvider.of(groupCollectionResource), MockProvider.of(groupResource)); dispatcher.getRegistry().addSingletonResource(groupRootResource); @@ -105,10 +102,7 @@ public class GroupRootResourceTest { @Test public void shouldGetGroup() throws URISyntaxException { - Group group = new Group(); - group.setName("admin"); - group.setCreationDate(0L); - group.setMembers(Collections.singletonList("user")); + Group group = createDummyGroup(); when(groupManager.get("admin")).thenReturn(group); MockHttpRequest request = MockHttpRequest.get("/" + GroupRootResource.GROUPS_PATH_V2 + "admin"); @@ -142,4 +136,12 @@ public class GroupRootResourceTest { assertEquals(2, createdGroup.getMembers().size()); assertEquals("user1", createdGroup.getMembers().get(0)); } + + private Group createDummyGroup() { + Group group = new Group(); + group.setName("admin"); + group.setCreationDate(0L); + group.setMembers(Collections.singletonList("user")); + return group; + } }