added appendEmbedded method to HalAppender

With this change we could not longer use @AfterMapping from MapStruct.
We should use @ObjectFactory instead and create Links and Embedded before.
This commit is contained in:
Sebastian Sdorra
2019-02-04 16:18:47 +01:00
parent 462cccb443
commit 21441aed45
24 changed files with 196 additions and 161 deletions

View File

@@ -1,5 +1,7 @@
package sonia.scm.api.v2.resources;
import de.otto.edison.hal.Embedded;
import de.otto.edison.hal.HalRepresentation;
import de.otto.edison.hal.Link;
import de.otto.edison.hal.Links;
import org.junit.jupiter.api.BeforeEach;
@@ -7,25 +9,28 @@ import org.junit.jupiter.api.Test;
import java.util.List;
import static de.otto.edison.hal.Embedded.embeddedBuilder;
import static de.otto.edison.hal.Links.linkingTo;
import static org.assertj.core.api.Assertions.assertThat;
class EdisonHalAppenderTest {
private Links.Builder builder;
private Links.Builder linksBuilder;
private Embedded.Builder embeddedBuilder;
private EdisonHalAppender appender;
@BeforeEach
void prepare() {
builder = linkingTo();
appender = new EdisonHalAppender(builder);
linksBuilder = linkingTo();
embeddedBuilder = embeddedBuilder();
appender = new EdisonHalAppender(linksBuilder, embeddedBuilder);
}
@Test
void shouldAppendOneLink() {
appender.appendLink("self", "https://scm.hitchhiker.com");
Links links = builder.build();
Links links = linksBuilder.build();
assertThat(links.getLinkBy("self").get().getHref()).isEqualTo("https://scm.hitchhiker.com");
}
@@ -36,8 +41,21 @@ class EdisonHalAppenderTest {
.append("two", "http://two")
.build();
List<Link> items = builder.build().getLinksBy("items");
List<Link> items = linksBuilder.build().getLinksBy("items");
assertThat(items).hasSize(2);
}
@Test
void shouldAppendEmbedded() {
HalRepresentation one = new HalRepresentation();
appender.appendEmbedded("one", one);
HalRepresentation two = new HalRepresentation();
appender.appendEmbedded("two", new HalRepresentation());
Embedded embedded = embeddedBuilder.build();
assertThat(embedded.getItemsBy("one")).containsOnly(one);
assertThat(embedded.getItemsBy("two")).containsOnly(two);
}
}

View File

@@ -136,10 +136,13 @@ public class GitLfsITCase {
}
private void createUser(User user) {
UserDto dto = new UserToUserDtoMapperImpl(){
@Override
protected void appendLinks(User user, UserDto target) {}
}.map(user);
UserDto dto = new UserDto();
dto.setName(user.getName());
dto.setMail(user.getMail());
dto.setDisplayName(user.getDisplayName());
dto.setType(user.getType());
dto.setActive(user.isActive());
dto.setAdmin(user.isAdmin());
dto.setPassword(user.getPassword());
createResource(adminClient, "users")
.accept("*/*")