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

OZG-1062 link for sending postfach message should always be present

parent 94dc1cb5
Branches
Tags
No related merge requests found
......@@ -3,7 +3,6 @@ package de.itvsh.goofy.vorgang;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -19,7 +18,6 @@ import de.itvsh.goofy.common.command.CommandController.CommandByRelationControll
import de.itvsh.goofy.common.user.CurrentUserService;
import de.itvsh.goofy.common.user.UserRole;
import de.itvsh.goofy.kommentar.KommentarController.KommentarByVorgangController;
import de.itvsh.goofy.vorgang.Vorgang.VorgangStatus;
import de.itvsh.goofy.wiedervorlage.WiedervorlageCommandController.WiedervorlageCommandByVorgangController;
import de.itvsh.goofy.wiedervorlage.WiedervorlageController;
......@@ -40,9 +38,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
public static final String REL_VORGANG_ASSIGN = "assign";
public static final String REL_SEND_POSTFACH_MESSAGE = "sendPostfachMessage";
private static final Predicate<Vorgang> ALLOW_TO_SEND_POSTFACH_MESSAGE = vorgang -> //
vorgang.getStatus() == VorgangStatus.BESCHIEDEN || vorgang.getStatus() == VorgangStatus.IN_BEARBEITUNG;
@Autowired
private CurrentUserService userService;
......@@ -55,7 +50,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
.ifMatch(this::existsPendingCommands)
.addLink(() -> linkTo(methodOn(CommandController.class).getPendingCommands(true, vorgang.getId())).withRel(REL_PENDING_COMMANDS))
.addLink(linkTo(methodOn(KommentarByVorgangController.class).getAll(vorgang.getId())).withRel(REL_KOMMENTARE))
.ifMatch(ALLOW_TO_SEND_POSTFACH_MESSAGE)
.addLink(linkTo(methodOn(CommandByRelationController.class).createCommandByRelation(vorgang.getId(), vorgang.getId(),
vorgang.getVersion(), null)).withRel(REL_SEND_POSTFACH_MESSAGE));
......
......@@ -13,7 +13,6 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.EnumSource.Mode;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.hateoas.CollectionModel;
......@@ -200,38 +199,22 @@ class VorgangModelAssemblerTest {
var link = modelAssembler.toModel(VorgangHeaderTestFactory.create()).getLink(VorgangModelAssembler.REL_PENDING_COMMANDS);
assertThat(link).isPresent();
assertThat(link.get().getHref()).isEqualTo("/api/commands?pending=true&vorgangId=" + VorgangHeaderTestFactory.ID);
assertThat(link).isPresent().get().extracting(Link::getHref)
.isEqualTo("/api/commands?pending=true&vorgangId=" + VorgangHeaderTestFactory.ID);
}
}
@Nested
class TestCreatePostfachMessageLink {
@Test
void shouldExistsOnStatusInBearbeitung() {
var link = toModel(VorgangStatus.IN_BEARBEITUNG).getLink(VorgangModelAssembler.REL_SEND_POSTFACH_MESSAGE);
assertThat(link).isPresent();
assertThat(link.get().getHref()).isEqualTo(String.format("/api/vorgangs/%s/relations/%s/%s/commands", VorgangHeaderTestFactory.ID,
VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION));
}
@Test
void shouldExistsOnStatusBeschieden() {
var link = toModel(VorgangStatus.BESCHIEDEN).getLink(VorgangModelAssembler.REL_SEND_POSTFACH_MESSAGE);
assertThat(link).isPresent();
assertThat(link.get().getHref()).isEqualTo(String.format("/api/vorgangs/%s/relations/%s/%s/commands", VorgangHeaderTestFactory.ID,
VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION));
}
@ParameterizedTest
@EnumSource(mode = Mode.EXCLUDE, names = { "IN_BEARBEITUNG", "BESCHIEDEN" })
void shouldNotExistsOnOtherStatus(VorgangStatus status) {
@EnumSource
void shouldExists(VorgangStatus status) {
var link = toModel(status).getLink(VorgangModelAssembler.REL_SEND_POSTFACH_MESSAGE);
assertThat(link).isNotPresent();
assertThat(link).isPresent().get().extracting(Link::getHref)
.isEqualTo(String.format("/api/vorgangs/%s/relations/%s/%s/commands", VorgangHeaderTestFactory.ID,
VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION));
}
private EntityModel<Vorgang> toModel(VorgangStatus status) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment