Skip to content
Snippets Groups Projects
Commit a506f9c0 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-400 add ModelAssembler for UserProfile, providing self-link

parent c72c5bcb
No related branches found
No related tags found
No related merge requests found
package de.itvsh.goofy.common.user; package de.itvsh.goofy.common.user;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.CollectionModel;
...@@ -12,13 +15,13 @@ class UserProfileModelAssembler implements RepresentationModelAssembler<UserProf ...@@ -12,13 +15,13 @@ class UserProfileModelAssembler implements RepresentationModelAssembler<UserProf
@Override @Override
public EntityModel<UserProfile> toModel(UserProfile entity) { public EntityModel<UserProfile> toModel(UserProfile entity) {
// TODO Auto-generated method stub return EntityModel.of(entity)
return null; .add(linkTo(UserProfileController.class).slash(entity.getId()).withSelfRel());
} }
public CollectionModel<EntityModel<UserProfile>> toCollectionModel(Stream<UserProfile> userProfile) { public CollectionModel<EntityModel<UserProfile>> toCollectionModel(Stream<UserProfile> userProfiles) {
// FIXME return CollectionModel.of(userProfiles.map(this::toModel).collect(Collectors.toList()))
return null; .add(linkTo(UserProfileController.class).withSelfRel());
} }
} }
package de.itvsh.goofy.common.user;
import static org.assertj.core.api.Assertions.*;
import java.util.stream.Stream;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.springframework.hateoas.IanaLinkRelations;
import org.springframework.hateoas.Link;
class UserProfileModelAssemblerTest {
@InjectMocks
private UserProfileModelAssembler modelAssembler;
@Nested
class ToModelTest {
@Test
void shouldHaveSelfLink() {
var model = modelAssembler.toModel(UserProfileTestFactory.create());
assertThat(model.getLink(IanaLinkRelations.SELF)).isPresent().get().extracting(Link::getHref)
.isEqualTo(UserProfileController.BASE_PATH + "/" + UserProfileTestFactory.ID);
}
}
@Nested
class ToCollectionModelTest {
private Stream<UserProfile> profiles = Stream.of(UserProfileTestFactory.create());
@Test
void shouldHaveSelfLink() {
var model = modelAssembler.toCollectionModel(profiles);
assertThat(model.getLink(IanaLinkRelations.SELF)).isPresent().get().extracting(Link::getHref)
.isEqualTo(UserProfileController.BASE_PATH);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment