From d70acc5fba7d19859baff1d576ccb83feff24a84 Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Wed, 5 Sep 2018 14:47:35 +0200 Subject: [PATCH] Added unit test --- .../scm/api/v2/resources/PermissionDto.java | 2 +- .../PermissionToPermissionDtoMapperTest.java | 63 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java index 8647146f2b..581b2c24cd 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java @@ -23,7 +23,7 @@ public class PermissionDto extends HalRepresentation { * **/ @JsonInclude(JsonInclude.Include.NON_NULL) - private String type ; + private String type; private boolean groupPermission = false; diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java new file mode 100644 index 0000000000..31c2f0ec31 --- /dev/null +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java @@ -0,0 +1,63 @@ +package sonia.scm.api.v2.resources; + +import com.github.sdorra.shiro.ShiroRule; +import com.github.sdorra.shiro.SubjectAware; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.junit.MockitoJUnitRunner; +import sonia.scm.repository.Permission; +import sonia.scm.repository.PermissionType; +import sonia.scm.repository.Repository; + +import java.net.URI; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(MockitoJUnitRunner.Silent.class) +@SubjectAware( + configuration = "classpath:sonia/scm/repository/shiro.ini" +) +public class PermissionToPermissionDtoMapperTest { + + @Rule + public ShiroRule shiro = new ShiroRule(); + + private final URI baseUri = URI.create("http://example.com/base/"); + + @SuppressWarnings("unused") // Is injected + private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri); + + @InjectMocks + PermissionToPermissionDtoMapperImpl mapper; + + @Test + @SubjectAware(username = "trillian", password = "secret") + public void shouldMapGroupPermissionCorrectly() { + Repository repository = getDummyRepository(); + Permission permission = new Permission("42", PermissionType.OWNER, true); + + PermissionDto permissionDto = mapper.map(permission, repository); + + assertThat(permissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); + assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).contains("@42"); + } + + @Test + @SubjectAware(username = "trillian", password = "secret") + public void shouldMapNonGroupPermissionCorrectly() { + Repository repository = getDummyRepository(); + Permission permission = new Permission("42", PermissionType.OWNER, false); + + PermissionDto permissionDto = mapper.map(permission, repository); + + assertThat(permissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); + assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).contains("42"); + assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).doesNotContain("@"); + } + + private Repository getDummyRepository() { + return new Repository("repo", "git", "foo", "bar"); + } +}