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; ...@@ -3,7 +3,6 @@ package de.itvsh.goofy.vorgang;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import java.util.Optional; import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -19,7 +18,6 @@ import de.itvsh.goofy.common.command.CommandController.CommandByRelationControll ...@@ -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.CurrentUserService;
import de.itvsh.goofy.common.user.UserRole; import de.itvsh.goofy.common.user.UserRole;
import de.itvsh.goofy.kommentar.KommentarController.KommentarByVorgangController; 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.WiedervorlageCommandController.WiedervorlageCommandByVorgangController;
import de.itvsh.goofy.wiedervorlage.WiedervorlageController; import de.itvsh.goofy.wiedervorlage.WiedervorlageController;
...@@ -40,9 +38,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent ...@@ -40,9 +38,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
public static final String REL_VORGANG_ASSIGN = "assign"; public static final String REL_VORGANG_ASSIGN = "assign";
public static final String REL_SEND_POSTFACH_MESSAGE = "sendPostfachMessage"; 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 @Autowired
private CurrentUserService userService; private CurrentUserService userService;
...@@ -55,7 +50,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent ...@@ -55,7 +50,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
.ifMatch(this::existsPendingCommands) .ifMatch(this::existsPendingCommands)
.addLink(() -> linkTo(methodOn(CommandController.class).getPendingCommands(true, vorgang.getId())).withRel(REL_PENDING_COMMANDS)) .addLink(() -> linkTo(methodOn(CommandController.class).getPendingCommands(true, vorgang.getId())).withRel(REL_PENDING_COMMANDS))
.addLink(linkTo(methodOn(KommentarByVorgangController.class).getAll(vorgang.getId())).withRel(REL_KOMMENTARE)) .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(), .addLink(linkTo(methodOn(CommandByRelationController.class).createCommandByRelation(vorgang.getId(), vorgang.getId(),
vorgang.getVersion(), null)).withRel(REL_SEND_POSTFACH_MESSAGE)); vorgang.getVersion(), null)).withRel(REL_SEND_POSTFACH_MESSAGE));
......
...@@ -13,7 +13,6 @@ import org.junit.jupiter.api.Nested; ...@@ -13,7 +13,6 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.EnumSource.Mode;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.CollectionModel;
...@@ -200,38 +199,22 @@ class VorgangModelAssemblerTest { ...@@ -200,38 +199,22 @@ class VorgangModelAssemblerTest {
var link = modelAssembler.toModel(VorgangHeaderTestFactory.create()).getLink(VorgangModelAssembler.REL_PENDING_COMMANDS); var link = modelAssembler.toModel(VorgangHeaderTestFactory.create()).getLink(VorgangModelAssembler.REL_PENDING_COMMANDS);
assertThat(link).isPresent(); assertThat(link).isPresent().get().extracting(Link::getHref)
assertThat(link.get().getHref()).isEqualTo("/api/commands?pending=true&vorgangId=" + VorgangHeaderTestFactory.ID); .isEqualTo("/api/commands?pending=true&vorgangId=" + VorgangHeaderTestFactory.ID);
} }
} }
@Nested @Nested
class TestCreatePostfachMessageLink { 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 @ParameterizedTest
@EnumSource(mode = Mode.EXCLUDE, names = { "IN_BEARBEITUNG", "BESCHIEDEN" }) @EnumSource
void shouldNotExistsOnOtherStatus(VorgangStatus status) { void shouldExists(VorgangStatus status) {
var link = toModel(status).getLink(VorgangModelAssembler.REL_SEND_POSTFACH_MESSAGE); 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) { 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