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

OZG-4248 use supplier to add link

parent c756a760
Branches
Tags
No related merge requests found
...@@ -40,11 +40,11 @@ class LoeschAnforderungCommandProzessor implements RepresentationModelProcessor< ...@@ -40,11 +40,11 @@ class LoeschAnforderungCommandProzessor implements RepresentationModelProcessor<
return model; return model;
} }
return ModelBuilder.fromModel(model) return ModelBuilder.fromModel(model)
.ifMatch(IS_VORGANG_ZUM_LOESCHEN_MARKIEREN_AND_REVOKEABLE)
.addLink(buildLink(command))
.ifMatch(IS_LOESCHEN_ANFORDERUNG_ZURUECKNEHMEN_AND_REVOKEABLE) .ifMatch(IS_LOESCHEN_ANFORDERUNG_ZURUECKNEHMEN_AND_REVOKEABLE)
.addLink(() -> linkTo(methodOn(LoeschAnforderungCommandController.class).revoke(command.getRelationId(), command.getId(), null)) .addLink(() -> linkTo(methodOn(LoeschAnforderungCommandController.class).revoke(command.getRelationId(), command.getId(), null))
.withRel(REL_REVOKE)) .withRel(REL_REVOKE))
.ifMatch(IS_VORGANG_ZUM_LOESCHEN_MARKIEREN_AND_REVOKEABLE)
.addLinkIfPresent(() -> buildLink(command))
.buildModel(); .buildModel();
} }
......
...@@ -49,15 +49,19 @@ class LoeschAnforderungCommandProzessorTest { ...@@ -49,15 +49,19 @@ class LoeschAnforderungCommandProzessorTest {
@Nested @Nested
class TestRevokeableCommand { class TestRevokeableCommand {
@DisplayName("loeschAnforderung command") @DisplayName("zum loeschen markieren command")
@Nested @Nested
class TestLoeschAnforderung { class TestLoeschAnforderungCommand {
private final Command finishedCommand = CommandTestFactory.createBuilder().status(CommandStatus.FINISHED).build(); private final Command finishedCommand = CommandTestFactory.createBuilder().status(CommandStatus.FINISHED).build();
@Test @BeforeEach
void shouldAddLinkForVorgangZumLoeschenMarkierenOrder() { void mock() {
when(service.findLoeschAnforderung(any())).thenReturn(Optional.of(VorgangAttachedItemTestFactory.create())); when(service.findLoeschAnforderung(any())).thenReturn(Optional.of(VorgangAttachedItemTestFactory.create()));
}
@Test
void shouldAddLink() {
var entityModel = EntityModel.of(finishedCommand.toBuilder().order(CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN).build()); var entityModel = EntityModel.of(finishedCommand.toBuilder().order(CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN).build());
var prozessedCommand = prozessor.process(entityModel); var prozessedCommand = prozessor.process(entityModel);
...@@ -67,7 +71,24 @@ class LoeschAnforderungCommandProzessorTest { ...@@ -67,7 +71,24 @@ class LoeschAnforderungCommandProzessorTest {
} }
@Test @Test
void shouldAddLinkForLoeschAnforderungZuruecknehmenOrder() { void shouldCallService() {
var entityModel = EntityModel.of(finishedCommand.toBuilder().order(CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN).build());
var prozessedCommand = prozessor.process(entityModel);
assertThat(prozessedCommand.getLink(LoeschAnforderungCommandProzessor.REL_REVOKE)).isPresent().get().extracting(Link::getHref)
.isEqualTo("/api/loeschanforderungs/" + VorgangAttachedItemTestFactory.ID + "/commands/" + CommandTestFactory.ID);
}
}
@DisplayName("loeschAnforderung zuruecknehmen command")
@Nested
class TestLoeschAnforderungZuruecknehmenCommand {
private final Command finishedCommand = CommandTestFactory.createBuilder().status(CommandStatus.FINISHED).build();
@Test
void shouldAddLink() {
var entityModel = EntityModel.of(finishedCommand.toBuilder().order(CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN).build()); var entityModel = EntityModel.of(finishedCommand.toBuilder().order(CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN).build());
var prozessedCommand = prozessor.process(entityModel); var prozessedCommand = prozessor.process(entityModel);
...@@ -83,6 +104,21 @@ class LoeschAnforderungCommandProzessorTest { ...@@ -83,6 +104,21 @@ class LoeschAnforderungCommandProzessorTest {
private final Command finishedCommand = CommandTestFactory.createBuilder().status(CommandStatus.FINISHED).build(); private final Command finishedCommand = CommandTestFactory.createBuilder().status(CommandStatus.FINISHED).build();
@DisplayName("except zum loeschen markieren")
@Nested
class TestsExceptLoeschAnforderungZuruecknehmen {
@ParameterizedTest
@EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ZUM_LOESCHEN_MARKIEREN" })
void shouldNotCallService(CommandOrder order) {
var command = finishedCommand.toBuilder().order(order).build();
prozessor.process(EntityModel.of(command));
verify(service, never()).findLoeschAnforderung(any());
}
}
@ParameterizedTest @ParameterizedTest
@EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ZUM_LOESCHEN_MARKIEREN", "LOESCH_ANFORDERUNG_ZURUECKNEHMEN" }) @EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ZUM_LOESCHEN_MARKIEREN", "LOESCH_ANFORDERUNG_ZURUECKNEHMEN" })
void NotAddRevokeLink(CommandOrder order) { void NotAddRevokeLink(CommandOrder order) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment