Use dedicated instead of generic Method for members

This commit is contained in:
René Pfeuffer
2018-06-25 15:21:38 +02:00
parent 6476fe18cd
commit 20db836e6c
3 changed files with 6 additions and 8 deletions

View File

@@ -25,8 +25,7 @@ public class GroupDto extends HalRepresentation {
return super.add(links);
}
@Override
protected HalRepresentation withEmbedded(String rel, List<? extends HalRepresentation> embeddedItems) {
return super.withEmbedded(rel, embeddedItems);
public HalRepresentation withMembers(List<MemberDto> members) {
return super.withEmbedded("members", members);
}
}

View File

@@ -41,7 +41,7 @@ public abstract class GroupToGroupDtoMapper extends BaseMapper<Group, GroupDto>
@AfterMapping
void mapMembers(Group group, @MappingTarget GroupDto target) {
List<MemberDto> memberDtos = group.getMembers().stream().map(this::createMember).collect(Collectors.toList());
target.withEmbedded("members", memberDtos);
target.withMembers(memberDtos);
}
private MemberDto createMember(String name) {

View File

@@ -1,7 +1,6 @@
package sonia.scm.api.v2.resources;
import com.fasterxml.jackson.databind.node.TextNode;
import de.otto.edison.hal.HalRepresentation;
import org.junit.Test;
import org.mapstruct.factory.Mappers;
import sonia.scm.group.Group;
@@ -23,12 +22,12 @@ public class GroupDtoToGroupMapperTest {
public void shouldMapMembers() {
GroupDto dto = new GroupDto();
HalRepresentation member1 = new HalRepresentation();
MemberDto member1 = new MemberDto();
member1.getAttributes().put("name", new TextNode("member1"));
HalRepresentation member2 = new HalRepresentation();
MemberDto member2 = new MemberDto();
member2.getAttributes().put("name", new TextNode("member2"));
dto.withEmbedded("members", asList(member1, member2));
dto.withMembers(asList(member1, member2));
Group group = Mappers.getMapper(GroupDtoToGroupMapper.class).map(dto);