Simplify mocking of resource links even further

This commit is contained in:
René Pfeuffer
2018-07-04 10:57:34 +02:00
parent 6043b093da
commit 397cf012a1
8 changed files with 25 additions and 37 deletions

View File

@@ -48,8 +48,7 @@ public class GroupRootResourceTest {
private Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
@Mock
private ResourceLinks resourceLinks;
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(URI.create("/"));
@Mock
private GroupManager groupManager;
@@ -70,8 +69,6 @@ public class GroupRootResourceTest {
when(groupManager.getPage(any(), eq(0), eq(10))).thenReturn(new PageResult<>(singletonList(group), 1));
when(groupManager.get("admin")).thenReturn(group);
ResourceLinksMock.initMock(resourceLinks, URI.create("/"));
GroupCollectionToDtoMapper groupCollectionToDtoMapper = new GroupCollectionToDtoMapper(groupToDtoMapper, resourceLinks);
GroupCollectionResource groupCollectionResource = new GroupCollectionResource(groupManager, dtoToGroupMapper, groupCollectionToDtoMapper, resourceLinks);
GroupResource groupResource = new GroupResource(groupManager, groupToDtoMapper, dtoToGroupMapper);

View File

@@ -8,7 +8,6 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import sonia.scm.group.Group;
import java.net.URI;
@@ -23,8 +22,8 @@ import static org.mockito.MockitoAnnotations.initMocks;
public class GroupToGroupDtoMapperTest {
@Mock
private ResourceLinks resourceLinks;
private final URI baseUri = URI.create("http://example.com/base/");
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@InjectMocks
private GroupToGroupDtoMapperImpl mapper;
@@ -37,12 +36,8 @@ public class GroupToGroupDtoMapperTest {
@Before
public void init() throws URISyntaxException {
initMocks(this);
URI baseUri = new URI("http://example.com/base/");
expectedBaseUri = baseUri.resolve(GroupRootResource.GROUPS_PATH_V2 + "/");
subjectThreadState.bind();
ResourceLinksMock.initMock(resourceLinks, baseUri);
ThreadContext.bind(subject);
}

View File

@@ -38,15 +38,16 @@ public class RepositoryRootResourceTest {
@Mock
private RepositoryManager repositoryManager;
@Mock
private ResourceLinks resourceLinks;
private final URI baseUri = URI.create("/");
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@InjectMocks
private RepositoryToRepositoryDtoMapperImpl repositoryToDtoMapper;
@Before
public void prepareEnvironment() {
initMocks(this);
ResourceLinksMock.initMock(resourceLinks, URI.create("/"));
RepositoryResource repositoryResource = new RepositoryResource(repositoryToDtoMapper, repositoryManager, null, null);
RepositoryRootResource repositoryRootResource = new RepositoryRootResource(MockProvider.of(repositoryResource));
dispatcher.getRegistry().addSingletonResource(repositoryRootResource);

View File

@@ -4,17 +4,16 @@ import org.apache.shiro.subject.Subject;
import org.apache.shiro.subject.support.SubjectThreadState;
import org.apache.shiro.util.ThreadContext;
import org.apache.shiro.util.ThreadState;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import sonia.scm.repository.HealthCheckFailure;
import sonia.scm.repository.Permission;
import sonia.scm.repository.PermissionType;
import sonia.scm.repository.Repository;
import java.net.URI;
import java.net.URISyntaxException;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
@@ -25,8 +24,8 @@ import static org.mockito.MockitoAnnotations.initMocks;
public class RepositoryToRepositoryDtoMapperTest {
@Mock
private ResourceLinks resourceLinks;
private final URI baseUri = URI.create("http://example.com/base/");
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@InjectMocks
private RepositoryToRepositoryDtoMapperImpl mapper;
@@ -37,15 +36,18 @@ public class RepositoryToRepositoryDtoMapperTest {
private URI expectedBaseUri;
@Before
public void init() throws URISyntaxException {
public void init() {
initMocks(this);
URI baseUri = new URI("http://example.com/base/");
expectedBaseUri = baseUri.resolve(RepositoryRootResource.REPOSITORIES_PATH_V2 + "/");
subjectThreadState.bind();
ResourceLinksMock.initMock(resourceLinks, baseUri);
ThreadContext.bind(subject);
}
@After
public void cleanup() {
ThreadContext.unbindSubject();
}
@Test
public void shouldMapSimpleProperties() {
RepositoryDto dto = mapper.map(createTestRepository());

View File

@@ -7,7 +7,8 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class ResourceLinksMock {
public static void initMock(ResourceLinks resourceLinks, URI baseUri) {
public static ResourceLinks createMock(URI baseUri) {
ResourceLinks resourceLinks = mock(ResourceLinks.class);
UriInfo uriInfo = mock(UriInfo.class);
when(uriInfo.getBaseUri()).thenReturn(baseUri);
@@ -19,5 +20,6 @@ public class ResourceLinksMock {
when(resourceLinks.repository()).thenReturn(new ResourceLinks.RepositoryLinks(uriInfo));
when(resourceLinks.tagCollection()).thenReturn(new ResourceLinks.TagCollectionLinks(uriInfo));
when(resourceLinks.branchCollection()).thenReturn(new ResourceLinks.BranchCollectionLinks(uriInfo));
return resourceLinks;
}
}

View File

@@ -27,8 +27,8 @@ import static sonia.scm.PageResult.createPage;
public class UserCollectionToDtoMapperTest {
@Mock
private ResourceLinks resourceLinks;
private final URI baseUri = URI.create("http://example.com/base/");
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@Mock
private UserToUserDtoMapper userToDtoMapper;
@Mock
@@ -44,9 +44,7 @@ public class UserCollectionToDtoMapperTest {
@Before
public void init() throws URISyntaxException {
initMocks(this);
URI baseUri = new URI("http://example.com/base/");
expectedBaseUri = baseUri.resolve(UserRootResource.USERS_PATH_V2 + "/");
ResourceLinksMock.initMock(resourceLinks, baseUri);
subjectThreadState.bind();
ThreadContext.bind(subject);
}

View File

@@ -50,8 +50,7 @@ public class UserRootResourceTest {
private Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
@Mock
private ResourceLinks resourceLinks;
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(URI.create("/"));
@Mock
private PasswordService passwordService;
@@ -72,8 +71,6 @@ public class UserRootResourceTest {
doNothing().when(userManager).modify(userCaptor.capture());
doNothing().when(userManager).delete(userCaptor.capture());
ResourceLinksMock.initMock(resourceLinks, URI.create("/"));
UserCollectionToDtoMapper userCollectionToDtoMapper = new UserCollectionToDtoMapper(userToDtoMapper, resourceLinks);
UserCollectionResource userCollectionResource = new UserCollectionResource(userManager, dtoToUserMapper,
userCollectionToDtoMapper, resourceLinks);

View File

@@ -8,12 +8,10 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import sonia.scm.api.rest.resources.UserResource;
import sonia.scm.user.User;
import java.net.URI;
import java.net.URISyntaxException;
import java.time.Instant;
import static org.junit.Assert.assertEquals;
@@ -24,8 +22,8 @@ import static org.mockito.MockitoAnnotations.initMocks;
public class UserToUserDtoMapperTest {
@Mock
private ResourceLinks resourceLinks;
private final URI baseUri = URI.create("http://example.com/base/");
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@InjectMocks
private UserToUserDtoMapperImpl mapper;
@@ -36,12 +34,10 @@ public class UserToUserDtoMapperTest {
private URI expectedBaseUri;
@Before
public void init() throws URISyntaxException {
public void init() {
initMocks(this);
URI baseUri = new URI("http://example.com/base/");
expectedBaseUri = baseUri.resolve(UserRootResource.USERS_PATH_V2 + "/");
subjectThreadState.bind();
ResourceLinksMock.initMock(resourceLinks, baseUri);
ThreadContext.bind(subject);
}