diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssembler.java index 4a09302e6420a9a441bcc290c28fff3201d0dddc..e57d11b88158d85a6d40bbdf93c04ba6a4a251bc 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssembler.java @@ -1,5 +1,7 @@ package de.ozgcloud.alfa.collaboration; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; + import java.util.stream.Stream; import org.springframework.hateoas.CollectionModel; @@ -7,12 +9,16 @@ import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.server.RepresentationModelAssembler; import org.springframework.stereotype.Component; +import de.ozgcloud.alfa.common.ModelBuilder; + @Component class OrganisationsEinheitModelAssembler implements RepresentationModelAssembler<OrganisationsEinheit, EntityModel<OrganisationsEinheit>> { @Override public EntityModel<OrganisationsEinheit> toModel(OrganisationsEinheit organisationsEinheit) { - return null; + return ModelBuilder.fromEntity(organisationsEinheit) + .addLink(linkTo(OrganisationsEinheitController.class).slash(organisationsEinheit.getId()).withSelfRel()) + .buildModel(); } public CollectionModel<OrganisationsEinheitHeader> toCollectionModel(Stream<OrganisationsEinheitHeader> entities) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssemblerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..81938934359faf4463c69bbce6500e9525c6aa2f --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitModelAssemblerTest.java @@ -0,0 +1,27 @@ +package de.ozgcloud.alfa.collaboration; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.Spy; +import org.springframework.hateoas.IanaLinkRelations; +import org.springframework.hateoas.Link; + +class OrganisationsEinheitModelAssemblerTest { + + @Spy + private OrganisationsEinheitModelAssembler assembler; + + @Nested + class TestToModel { + + @Test + void shouldHaveSelfLink() { + var entityModel = assembler.toModel(OrganisationsEinheitTestFactory.create()); + + assertThat(entityModel.getLink(IanaLinkRelations.SELF_VALUE)).isPresent().get().extracting(Link::getHref) + .isEqualTo(OrganisationsEinheitController.PATH + "/" + OrganisationsEinheitTestFactory.ID); + } + } +}