mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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("*/*")
|
||||
|
||||
Reference in New Issue
Block a user