diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts index 734af53282d7f85a6181ccaee71cb0446ef01a1e..149ffcb5341df253331274d1a4580f85ceaba311 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts @@ -104,14 +104,14 @@ describe('Vorgang Detailansicht by role', () => { describe('annehmen', () => { it('should be visible', () => { - exist(vorgangSubnavigation.getAnnehmenByIconButton()); + exist(formularButtons.getAnnehmenButton()); }) }) describe('verwerfen', () => { it('should be visible', () => { - exist(vorgangSubnavigation.getVerwerfenIconButton()); + exist(formularButtons.getVerwerfenButton()); }) }) }) @@ -163,19 +163,19 @@ describe('Vorgang Detailansicht by role', () => { describe('Subnavigation actions buttons', () => { - describe.skip('OZG-2250 ACTIVATE_ME: for vorgang status', () => { + describe('for vorgang status', () => { describe('annehmen', () => { it('should NOT be visible', () => { - exist(vorgangSubnavigation.getAnnehmenByIconButton()); + notExist(vorgangSubnavigation.getAnnehmenByIconButton()); }) }) describe('verwerfen', () => { it('should NOT be visible', () => { - exist(vorgangSubnavigation.getVerwerfenIconButton()); + notExist(vorgangSubnavigation.getVerwerfenIconButton()); }) }) }) @@ -187,7 +187,7 @@ describe('Vorgang Detailansicht by role', () => { }) }) - describe.skip('OZG-2250 ACTIVATE_ME: for create wiedervorlage', () => { + describe('for create wiedervorlage', () => { it('should NOT be visible', () => { notExist(vorgangSubnavigation.getCreateWiedervorlageIconButton()); @@ -209,24 +209,24 @@ describe('Vorgang Detailansicht by role', () => { }) }) - describe.skip('OZG-2250 ACTIVATE_ME: Formular button', () => { + describe('Formular button', () => { describe('annehmen', () => { - it('should be visible', () => { - notExist(vorgangSubnavigation.getAnnehmenByIconButton()); + it('should NOT be visible', () => { + notExist(formularButtons.getAnnehmenButton()); }) }) describe('verwerfen', () => { - it('should be visible', () => { - notExist(vorgangSubnavigation.getVerwerfenIconButton()); + it('should NOT be visible', () => { + notExist(formularButtons.getVerwerfenButton()); }) }) }) - describe.skip('OZG-2250 ACTIVATE_ME: Wiedervorlagen area', () => { + describe('Wiedervorlagen area', () => { it('should NOT be visible', () => { notExist(wiedervorlagenContainer.getRoot()); diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/user/CurrentUserService.java b/goofy-server/src/main/java/de/itvsh/goofy/common/user/CurrentUserService.java index e8b4818ee61df315f38658efa9fc5a27c00daa1d..0e1da92e75bbbd21e20b79babb1f58814e7da1c7 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/common/user/CurrentUserService.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/common/user/CurrentUserService.java @@ -16,11 +16,9 @@ import org.springframework.stereotype.Service; @Service public class CurrentUserService { - static final String USER_ATTRIBUTE_ORGANISATIONSEINHEIT_ID = "organisationseinheitId"; + public static final String VERIFY_HAS_ROLE_VERWALTUNG_USER = "@currentUserService.hasRole(\"" + UserRole.VERWALTUNG_USER + "\")"; - public boolean isNotEinheitlicherAnsprechpartner() { - return !hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER); - } + static final String USER_ATTRIBUTE_ORGANISATIONSEINHEIT_ID = "organisationseinheitId"; public boolean hasRole(String role) { return CurrentUserHelper.hasRole(role); diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java index d313cdd1e83b2e556bc79e2fe6098778fad93db8..dfde445e7552cfa25e3a126dec287fa1dd433712 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java @@ -17,6 +17,7 @@ import org.springframework.web.util.UriComponentsBuilder; import de.itvsh.goofy.common.ModelBuilder; import de.itvsh.goofy.common.command.CommandController.CommandByRelationController; import de.itvsh.goofy.common.user.CurrentUserService; +import de.itvsh.goofy.common.user.UserRole; import de.itvsh.goofy.vorgang.PageUtil.VorgangListPage; import de.itvsh.goofy.wiedervorlage.WiedervorlageController; @@ -45,7 +46,7 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent } VorgangHeader addNextFrist(VorgangHeader vorgangHeader) { - if (isNotEinheitlicherAnsprechpartner()) { + if (userService.hasRole(UserRole.VERWALTUNG_USER)) { return vorgangHeader.withNextFrist(findWiedervorlageNextFrist(vorgangHeader)); } return vorgangHeader; @@ -86,19 +87,19 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent @Override public EntityModel<Vorgang> toModel(Vorgang vorgang) { var selfLinkBuilder = linkTo(VorgangController.class).slash(vorgang.getId()); + var assignLink = linkTo(methodOn(CommandByRelationController.class).createCommandByRelation(vorgang.getId(), vorgang.getId(), + vorgang.getVersion(), null)).withRel(REL_VORGANG_ASSIGN); + var wiedervorlagenLink = linkTo(methodOn(WiedervorlageController.class).findByVorgang(vorgang.getId())).withRel(REL_WIEDERVORLAGEN); + return ModelBuilder.fromEntity(vorgang) .addLink(selfLinkBuilder.withSelfRel()) .addLink(selfLinkBuilder.withRel(REL_VORGANG_MIT_EINGANG)) - .ifMatch(this::isNotEinheitlicherAnsprechpartner) - .addLinks( - linkTo(methodOn(WiedervorlageController.class).findByVorgang(vorgang.getId())).withRel(REL_WIEDERVORLAGEN), - linkTo(methodOn(CommandByRelationController.class).createCommandByRelation(vorgang.getId(), vorgang.getId(), - vorgang.getVersion(), null)) - .withRel(REL_VORGANG_ASSIGN)) + .ifMatch(this::isVerwaltung).addLink(assignLink) + .ifMatch(() -> userService.hasRole(UserRole.VERWALTUNG_USER)).addLink(wiedervorlagenLink) .buildModel(); } - private boolean isNotEinheitlicherAnsprechpartner() { - return userService.isNotEinheitlicherAnsprechpartner(); + private boolean isVerwaltung() { + return userService.hasRole(UserRole.VERWALTUNG_USER) || userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE); } } \ No newline at end of file diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessor.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessor.java index 0897bbae33bc67d003c88aa24c1912bf8a001f0a..94cc7e52f7c7c4072ddc62f1ecb05d210dc1843e 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessor.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessor.java @@ -34,9 +34,11 @@ class VorgangCommandProzessor implements RepresentationModelProcessor<EntityMode @Override public EntityModel<? extends Vorgang> process(EntityModel<? extends Vorgang> model) { var vorgang = model.getContent(); + if (Objects.isNull(vorgang)) { return model; } + addLinkIfTransactionAllowed(VorgangStatus.ANGENOMMEN, getRelationForAngenommenByStatus(vorgang), vorgang, model); addLinkIfTransactionAllowed(VorgangStatus.VERWORFEN, REL_VORGANG_VERWERFEN, vorgang, model); addLinkIfTransactionAllowed(VorgangStatus.NEU, REL_VORGANG_ZURUECKHOLEN, vorgang, model); @@ -77,10 +79,15 @@ class VorgangCommandProzessor implements RepresentationModelProcessor<EntityMode } String getUserRole() { - return isEinheitlicherAnsprechpartner() ? UserRole.EINHEITLICHER_ANSPRECHPARTNER : UserRole.VERWALTUNG_USER; - } + String role; + if (userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)) { + role = UserRole.EINHEITLICHER_ANSPRECHPARTNER; + } else if (userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)) { + role = UserRole.VERWALTUNG_POSTSTELLE; + } else { + role = UserRole.VERWALTUNG_USER; + } - private boolean isEinheitlicherAnsprechpartner() { - return userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER); + return role; } } \ No newline at end of file diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessor.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessor.java index 4ea1618b82f9716ad62552db0a89bfe48f466e89..56992d26971fd674f02c39df6aed45bfa7ff8965 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessor.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessor.java @@ -45,7 +45,7 @@ public class VorgangWithEingangCommandProzessor implements RepresentationModelPr .addLink(linkTo( methodOn(CommandByRelationController.class).createCommandByRelation(vorgang.getId(), vorgang.getId(), vorgang.getVersion(), null)).withRel(REL_VORGANG_FORWARD)) - .ifMatch(() -> userService.isNotEinheitlicherAnsprechpartner()) + .ifMatch(() -> userService.hasRole(UserRole.VERWALTUNG_USER)) .addLink(linkTo(methodOn(WiedervorlageCommandByVorgangController.class).createCommand(null, vorgang.getId())) .withRel(REL_CREATE_WIEDERVORLAGE)) .ifMatch(this::existsPendingCommands) @@ -54,16 +54,12 @@ public class VorgangWithEingangCommandProzessor implements RepresentationModelPr } boolean isForwardingAllowed(VorgangWithEingang vorgang) { - return isEinheitlicherAnsprechpartner(vorgang) + return userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER) && (vorgang.getStatus() == VorgangStatus.NEU || (vorgang.getStatus() == VorgangStatus.IN_BEARBEITUNG && hasForwardingFailed(vorgang))); } - private boolean isEinheitlicherAnsprechpartner(VorgangWithEingang vorgang) { - return userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER); - } - private boolean hasForwardingFailed(VorgangWithEingang vorgang) { return !forwardingController.findFailedForwardings(vorgang.getId()).isEmpty(); } diff --git a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageController.java b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageController.java index 8f1f7dfdb8cad81f53fe024365f2e38c4b4d3b20..58f24930071c67a954a35ebd92d90a208108a94e 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageController.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import de.itvsh.goofy.common.binaryfile.BinaryFileController; import de.itvsh.goofy.common.binaryfile.FileId; import de.itvsh.goofy.common.file.OzgFile; +import de.itvsh.goofy.common.user.CurrentUserService; @RestController @RequestMapping(WiedervorlageController.WIEDERVORLAGE_PATH) @@ -27,7 +28,6 @@ public class WiedervorlageController { static final String WIEDERVORLAGE_PATH = "/api/wiedervorlages"; // NOSONAR static final String PARAM_VORGANG_ID = "vorgangId"; - private static final String IS_NOT_EINHEITLICHER_ANSPRECHPARTNER = "@currentUserService.isNotEinheitlicherAnsprechpartner()"; private static final Predicate<Wiedervorlage> IS_NOT_DONE = wiedervorlage -> !wiedervorlage.isDone(); @Autowired @@ -35,7 +35,7 @@ public class WiedervorlageController { @Autowired private WiedervorlageModelAssembler modelAssembler; - @PreAuthorize(IS_NOT_EINHEITLICHER_ANSPRECHPARTNER) + @PreAuthorize(CurrentUserService.VERIFY_HAS_ROLE_VERWALTUNG_USER) @GetMapping("/{wiedervorlageId}") public EntityModel<Wiedervorlage> getById(@PathVariable String wiedervorlageId) { return modelAssembler.toModel(service.getById(wiedervorlageId)); diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java index f6f29d75e6ad99050ed14a5bb952e226d34bccd2..9358ddd8cc3c9a1754deb85cc3e3535621efb79f 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java @@ -151,7 +151,7 @@ class VorgangModelAssemblerTest { @BeforeEach void mockUserServive() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(true); + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); } @Test @@ -180,17 +180,17 @@ class VorgangModelAssemblerTest { } @Test - void shouldNotSetNextFristIfIsUserRoleEa() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(false); + void shouldNotSetNextFristWithoutRoleVerwaltungUser() { + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(false); var vorgang = addNextFrist(); - assertThat(vorgang.getNextFrist()).isNull(); + assertThat(vorgang.getNextFrist()).isEmpty(); verifyNoInteractions(wiedervorlageController); } private VorgangHeader addNextFrist() { - return modelAssembler.addNextFrist(VorgangHeaderTestFactory.create()); + return modelAssembler.addNextFrist(VorgangHeaderTestFactory.createBuilder().nextFrist(Optional.empty()).build()); } } } @@ -212,65 +212,69 @@ class VorgangModelAssemblerTest { assertThat(link).isPresent().get().extracting(Link::getHref).isEqualTo(BASE_PATH + "/" + VorgangHeaderTestFactory.ID); } + @DisplayName("Without any roles") @Nested - class TestWiedervorlagenLink { + class WithoutRoles { - @DisplayName("Test links at model for user with role " + UserRole.EINHEITLICHER_ANSPRECHPARTNER) - @Nested - class TestWithRoleEinheitlicherAnsprechpartner { + @Test + void shouldNotHaveWiedervorlagenLink() { + var link = toModel().getLink(VorgangModelAssembler.REL_WIEDERVORLAGEN); - @Test - void shouldNotHaveWiedervorlagenLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(false); + assertThat(link).isEmpty(); + } - var link = toModel().getLink(VorgangModelAssembler.REL_WIEDERVORLAGEN); + @DisplayName("Should not have Vorgang-assign-links") + @Test + void shouldNotHaveAssignLink() { + var link = toModel().getLink(VorgangModelAssembler.REL_VORGANG_ASSIGN); - assertThat(link).isNotPresent(); - } + assertThat(link).isEmpty(); } + } - @DisplayName("Test links at model for user without role " + UserRole.EINHEITLICHER_ANSPRECHPARTNER) - @Nested - class TestWithoutRoleEinheitlicherAnsprechpartner { + @Nested + class ForRoleVerwaltungPoststelle { - @Test - void shouldHaveWiedervorlagenLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(true); + @Test + void shouldHaveAssignLink() { + when(userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)).thenReturn(true); + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(false); - var link = toModel().getLink(VorgangModelAssembler.REL_WIEDERVORLAGEN); + var link = toModel().getLink(VorgangModelAssembler.REL_VORGANG_ASSIGN); - assertThat(link).isPresent().get().extracting(Link::getHref) - .isEqualTo("/api/wiedervorlages?vorgangId=" + VorgangHeaderTestFactory.ID); - } + assertThat(link).isPresent().get().extracting(Link::getHref).isEqualTo(buildCommandLink()); } } @Nested - class TestAssignLink { + class ForRoleVerwaltungUser { - @DisplayName("Test links at model for user without role " + UserRole.EINHEITLICHER_ANSPRECHPARTNER) - @Test - void shouldHaveAssignLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(true); + @BeforeEach + void mockUserService() { + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); + } - var link = toModel().getLink(VorgangModelAssembler.REL_VORGANG_ASSIGN); + @Test + void shouldHaveWiedervorlagenLink() { + var link = toModel().getLink(VorgangModelAssembler.REL_WIEDERVORLAGEN); assertThat(link).isPresent().get().extracting(Link::getHref) - .isEqualTo(String.format("/api/vorgangs/%s/relations/%s/%s/commands", VorgangHeaderTestFactory.ID, - VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION)); + .isEqualTo("/api/wiedervorlages?vorgangId=" + VorgangHeaderTestFactory.ID); } - @DisplayName("Test links at model for user with role " + UserRole.EINHEITLICHER_ANSPRECHPARTNER) @Test - void shouldNotHaveAssignLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(false); - + void shouldHaveAssignLink() { var link = toModel().getLink(VorgangModelAssembler.REL_VORGANG_ASSIGN); - assertThat(link).isNotPresent(); + assertThat(link).isPresent().get().extracting(Link::getHref).isEqualTo(buildCommandLink()); } } + private String buildCommandLink() { + return String.format("/api/vorgangs/%s/relations/%s/%s/commands", VorgangHeaderTestFactory.ID, + VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION); + } + private EntityModel<Vorgang> toModel() { return modelAssembler.toModel(VorgangWithEingangTestFactory.create()); } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessorTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessorTest.java index d350c323e52ac952eb04852d6711bd532076261f..8aa9e411b16170bfe269890b5a580fcf435d40da 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessorTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangCommandProzessorTest.java @@ -31,7 +31,7 @@ class VorgangCommandProzessorTest { private static final String EXPECTED_COMMAND_LINK = String.format(EXPECTED_COMMAND_LINK_TEMPL, CommandTestFactory.VORGANG_ID, VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION); - @Spy // NOSONAR + @Spy @InjectMocks private VorgangCommandProzessor processor; @Mock @@ -322,6 +322,23 @@ class VorgangCommandProzessorTest { } } + @Nested + class TestRoleVerwaltungPoststelle { + @BeforeEach + void init() { + when(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(Boolean.FALSE); + when(userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)).thenReturn(Boolean.TRUE); + } + + @ParameterizedTest + @EnumSource() + void shouldNotBePresent(VorgangStatus status) { + var processed = processor.process(buildVorgangInStatus(status)); + + assertThat(processed.getLinks()).isEmpty(); + } + } + private EntityModel<Vorgang> buildVorgangInStatus(VorgangStatus status) { return EntityModel.of(VorgangHeaderTestFactory.createBuilder().status(status).build()); } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessorTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessorTest.java index da7c518a57e55143e95ce2d510e05914f4912a06..2c34ae5ee0a1ae740a3510031d6427eac5a2ffeb 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessorTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/command/VorgangWithEingangCommandProzessorTest.java @@ -193,18 +193,20 @@ class VorgangWithEingangCommandProzessorTest { @Test void shouldHaveCreateWiedervorlageLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(true); + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); + when(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(false); - Optional<Link> model = processor.process(EntityModel.of(VorgangWithEingangTestFactory.create())) - .getLink(VorgangWithEingangCommandProzessor.REL_CREATE_WIEDERVORLAGE); + EntityModel<VorgangWithEingang> model = processor.process(EntityModel.of(VorgangWithEingangTestFactory.create())); + var link = model.getLink(VorgangWithEingangCommandProzessor.REL_CREATE_WIEDERVORLAGE); - assertThat(model).isPresent().get().extracting(Link::getHref) + assertThat(link).isPresent().get().extracting(Link::getHref) .isEqualTo("/api/vorgangs/" + VorgangHeaderTestFactory.ID + "/wiedervorlageCommands"); } @Test void shouldNotHaveCreateWiedervorlageLink() { - when(userService.isNotEinheitlicherAnsprechpartner()).thenReturn(false); + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(false); + when(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(false); Optional<Link> model = processor.process(EntityModel.of(VorgangWithEingangTestFactory.create())) .getLink(VorgangWithEingangCommandProzessor.REL_CREATE_WIEDERVORLAGE); diff --git a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageControllerITCase.java b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageControllerITCase.java index 450dea49042724d62078da9d349882ac4f37a6f9..4f7ec64240e6391206fc1fc5b8b003781ec31efc 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageControllerITCase.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageControllerITCase.java @@ -31,9 +31,17 @@ public class WiedervorlageControllerITCase { @Nested class TestGetById { - @WithMockUser(roles = UserRole.EINHEITLICHER_ANSPRECHPARTNER) + @WithMockUser(roles = { UserRole.EINHEITLICHER_ANSPRECHPARTNER }) @Test - void shouldReturnForbiddenOnEaUser() throws Exception { + void shouldReturnForbiddenOnUserWithRoleEa() throws Exception { + var result = callEndpoint(); + + result.andExpect(status().isForbidden()); + } + + @WithMockUser(roles = UserRole.VERWALTUNG_POSTSTELLE) + @Test + void shouldReturnForbiddenOnUserWithRoleVerwaltungPoststelle() throws Exception { var result = callEndpoint(); result.andExpect(status().isForbidden()); @@ -41,7 +49,7 @@ public class WiedervorlageControllerITCase { @WithMockUser(roles = UserRole.VERWALTUNG_USER) @Test - void shouldReturnOnVerwaltungUser() throws Exception { + void shouldReturnResultOnUserWithRoleVerwaltungUser() throws Exception { when(service.getById(any())).thenReturn(WiedervorlageTestFactory.create()); var result = callEndpoint();