diff --git a/scm-core/src/main/java/sonia/scm/PageResult.java b/scm-core/src/main/java/sonia/scm/PageResult.java index 87f880637d..47ef08c4fc 100644 --- a/scm-core/src/main/java/sonia/scm/PageResult.java +++ b/scm-core/src/main/java/sonia/scm/PageResult.java @@ -25,7 +25,7 @@ public class PageResult { } /** - * If this is true, there are more pages (that is, mor entities). + * If this is true, there are more pages (that is, more entities). */ public boolean hasMore() { return hasMore; diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java index d4e7e71b03..4d9d9f997d 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java @@ -37,10 +37,8 @@ package sonia.scm.api.rest.resources; import org.apache.commons.beanutils.BeanComparator; import org.apache.shiro.authz.AuthorizationException; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import sonia.scm.LastModifiedAware; import sonia.scm.Manager; import sonia.scm.ModelObject; @@ -50,12 +48,6 @@ import sonia.scm.util.AssertUtil; import sonia.scm.util.HttpUtil; import sonia.scm.util.Util; -//~--- JDK imports ------------------------------------------------------------ - -import java.util.Collection; -import java.util.Comparator; -import java.util.Date; - import javax.ws.rs.core.CacheControl; import javax.ws.rs.core.EntityTag; import javax.ws.rs.core.GenericEntity; @@ -63,6 +55,11 @@ import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriInfo; +import java.util.Collection; +import java.util.Comparator; +import java.util.Date; + +//~--- JDK imports ------------------------------------------------------------ /** * diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/User2UserDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/User2UserDtoMapper.java index eb984ecd7a..a52e6e6cce 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/User2UserDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/User2UserDtoMapper.java @@ -1,7 +1,10 @@ package sonia.scm.api.v2.resources; import de.otto.edison.hal.Links; -import org.mapstruct.*; +import org.mapstruct.AfterMapping; +import org.mapstruct.Context; +import org.mapstruct.Mapper; +import org.mapstruct.MappingTarget; import sonia.scm.api.rest.resources.UserResource; import sonia.scm.user.User; import sonia.scm.user.UserPermissions; @@ -17,7 +20,7 @@ import static de.otto.edison.hal.Links.linkingTo; @Mapper public abstract class User2UserDtoMapper { - public abstract UserDto userToUserDto(User user, @Context UriInfo uriInfo); + public abstract UserDto map(User user, @Context UriInfo uriInfo); @AfterMapping void removePassword(@MappingTarget UserDto target) { @@ -42,13 +45,11 @@ public abstract class User2UserDtoMapper { linksBuilder.build()); } - @Mapping(target = "creationDate") Instant mapTime(Long epochMilli) { AssertUtil.assertIsNotNull(epochMilli); return Instant.ofEpochMilli(epochMilli); } - @Mapping(target = "lastModified") Optional mapOptionalTime(Long epochMilli) { return Optional .ofNullable(epochMilli) diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollection2DtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollection2DtoMapper.java index 2989f3ced9..8d90ec7914 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollection2DtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollection2DtoMapper.java @@ -29,9 +29,9 @@ public class UserCollection2DtoMapper { this.userToDtoMapper = userToDtoMapper; } - public UserCollectionDto userCollectionToDto(UriInfo uriInfo, int pageNumber, int pageSize, PageResult pageResult) { + public UserCollectionDto map(UriInfo uriInfo, int pageNumber, int pageSize, PageResult pageResult) { NumberedPaging paging = zeroBasedNumberedPaging(pageNumber, pageSize, pageResult.hasMore()); - List dtos = pageResult.getEntities().stream().map(user -> userToDtoMapper.userToUserDto(user, uriInfo)).collect(Collectors.toList()); + List dtos = pageResult.getEntities().stream().map(user -> userToDtoMapper.map(user, uriInfo)).collect(Collectors.toList()); UserCollectionDto userCollectionDto = new UserCollectionDto( createLinks(uriInfo, paging), diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java index cb3fd82033..dd84a72dd8 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java @@ -66,7 +66,7 @@ public class UserCollectionResource extends AbstractManagerResource pageResult = fetchPage(sortby, desc, page, pageSize); - return Response.ok(new UserCollection2DtoMapper(userToDtoMapper).userCollectionToDto(uriInfo, page, pageSize, pageResult)).build(); + return Response.ok(new UserCollection2DtoMapper(userToDtoMapper).map(uriInfo, page, pageSize, pageResult)).build(); } /** @@ -85,7 +85,7 @@ public class UserCollectionResource extends AbstractManagerResource pageResult = mockPageResult(true, "Hannes"); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertEquals(1, userCollectionDto.getPage()); } @Test public void shouldHaveSelfLink() { PageResult pageResult = mockPageResult(true, "Hannes"); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertTrue(userCollectionDto.getLinks().getLinkBy("self").get().getHref().startsWith(expectedBaseUri.toString())); } @Test public void shouldCreateNextPageLink_whenHasMore() { PageResult pageResult = mockPageResult(true, "Hannes"); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertTrue(userCollectionDto.getLinks().getLinkBy("next").get().getHref().contains("page=2")); } @Test public void shouldNotCreateNextPageLink_whenNoMore() { PageResult pageResult = mockPageResult(false, "Hannes"); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertFalse(userCollectionDto.getLinks().stream().anyMatch(link -> link.getHref().contains("page=2"))); } @@ -81,7 +83,7 @@ public class UserCollection2DtoMapperTest { PageResult pageResult = mockPageResult(false, "Hannes"); when(subject.isPermitted("user:create")).thenReturn(true); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertTrue(userCollectionDto.getLinks().getLinkBy("create").isPresent()); } @@ -91,7 +93,7 @@ public class UserCollection2DtoMapperTest { PageResult pageResult = mockPageResult(false, "Hannes"); when(subject.isPermitted("user:create")).thenReturn(false); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 1, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 1, pageResult); assertFalse(userCollectionDto.getLinks().getLinkBy("create").isPresent()); } @@ -99,7 +101,7 @@ public class UserCollection2DtoMapperTest { @Test public void shouldMapUsers() { PageResult pageResult = mockPageResult(false, "Hannes", "Wurst"); - UserCollectionDto userCollectionDto = mapper.userCollectionToDto(uriInfo, 1, 2, pageResult); + UserCollectionDto userCollectionDto = mapper.map(uriInfo, 1, 2, pageResult); List users = userCollectionDto.getEmbedded().getItemsBy("users"); assertEquals(2, users.size()); assertEquals("Hannes", ((UserDto) users.get(0)).getName()); @@ -114,7 +116,7 @@ public class UserCollection2DtoMapperTest { private User mockUserWithDto(String userName) { User user = new User(); user.setName(userName); - when(userToDtoMapper.userToUserDto(user, uriInfo)).thenReturn(createUserDto(user)); + when(userToDtoMapper.map(user, uriInfo)).thenReturn(createUserDto(user)); return user; } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/UserDto2UserMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/UserDto2UserMapperTest.java index 079657285a..acc56781fe 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/UserDto2UserMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/UserDto2UserMapperTest.java @@ -24,7 +24,7 @@ public class UserDto2UserMapperTest { @Test public void shouldMapFields() { UserDto dto = createDefaultDto(); - User user = mapper.userDtoToUser(dto, "original password"); + User user = mapper.map(dto, "original password"); assertEquals("abc" , user.getName()); } @@ -34,7 +34,7 @@ public class UserDto2UserMapperTest { UserDto dto = createDefaultDto(); dto.setPassword("unencrypted"); - User user = mapper.userDtoToUser(dto, "original password"); + User user = mapper.map(dto, "original password"); assertEquals("encrypted" , user.getPassword()); }