diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java index b3d974cdfde016189d2218ac258a6fac361be750..a88d362dfe834e164d5b7f5b33396ced8ed230da 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java @@ -29,7 +29,6 @@ import java.util.Objects; import java.util.Optional; import java.util.stream.Stream; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; @@ -39,17 +38,18 @@ import org.springframework.stereotype.Component; import de.ozgcloud.alfa.common.ModelBuilder; import de.ozgcloud.alfa.common.command.Command; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; +import lombok.RequiredArgsConstructor; @Component +@RequiredArgsConstructor class HistorieModelAssembler implements RepresentationModelAssembler<Command, EntityModel<Command>> { - static final String SYSTEM_NOTIFICATION_MANAGER_PREFIX = "system-notification_manager"; + static final String SYSTEM_USER_PREFIX = "system-"; static final String REL_ASSIGNED_TO = "assignedTo"; static final String ASSIGNED_TO_BODY_FIELD = "assignedTo"; - @Autowired - private UserManagerUrlProvider userManagerUrlProvider; + private final UserManagerUrlProvider userManagerUrlProvider; @Override public EntityModel<Command> toModel(Command entity) { @@ -62,15 +62,15 @@ class HistorieModelAssembler implements RepresentationModelAssembler<Command, En } Command unsetSystemUser(Command entity) { - if (isSystemNotificationUser(entity)) { + if (isSystemUser(entity)) { return entity.toBuilder().createdBy(null).build(); } return entity; } - private boolean isSystemNotificationUser(Command entity) { - return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_NOTIFICATION_MANAGER_PREFIX); + private boolean isSystemUser(Command entity) { + return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_USER_PREFIX); } private void addAssignedTo(Command entity, ModelBuilder<Command> modelBuilder) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java index e420daa620ba091986b8a5e62fffb0fc93e4a57d..76c9affa1efe0cbe797641e39455b5fed4ee50f6 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java @@ -37,6 +37,8 @@ import org.mockito.Mock; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.command.CommandTestFactory; import de.ozgcloud.alfa.common.user.UserId; @@ -52,7 +54,7 @@ class HistorieModelAssemblerTest { @Mock private UserManagerUrlProvider userManagerUrlProvider; - private final String COMMAND_SINGLE_PATH = "/api/histories/" + CommandTestFactory.ID; + private static final String COMMAND_SINGLE_PATH = "/api/histories/" + CommandTestFactory.ID; private UserProfileUrlProvider urlProvider = new UserProfileUrlProvider(); @@ -133,10 +135,13 @@ class HistorieModelAssemblerTest { } @Test - void shouldNotExistingAtSystemNotificationMAnager() { - var model = modelAssembler - .toModel(CommandTestFactory.createBuilder().createdBy(UserId.from(HistorieModelAssembler.SYSTEM_NOTIFICATION_MANAGER_PREFIX)) - .build()); + void shouldNotExistForSystemUser() { + var systemUser = UserId.from("system-" + LoremIpsum.getInstance().getWords(1)); + var commandBySystemUser = CommandTestFactory.createBuilder() + .createdBy(systemUser) + .build(); + + var model = modelAssembler.toModel(commandBySystemUser); assertThat(model.getLink(CREATED_BY)).isNotPresent(); }