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

OZG-5917 Impl PR comments

parent b9b71351
No related branches found
No related tags found
No related merge requests found
......@@ -82,33 +82,18 @@ public class PersistPostfachNachrichtServiceImpl implements PersistPostfachNachr
@Override
public void persistNachricht(Optional<String> userId, PostfachNachricht nachricht) {
var commandBuilder = createBaseCommandBuilder(userId, nachricht);
commandService.create(buildNachrichtCommand(commandBuilder, nachricht));
setHasNewPostfachNachricht(nachricht);
}
OzgCloudCommand.OzgCloudCommandBuilder createBaseCommandBuilder(Optional<String> userId, PostfachNachricht nachricht) {
var commandBuilder = OzgCloudCommand.builder().vorgangId(OzgCloudVorgangId.from(nachricht.getVorgangId()));
userId.map(OzgCloudUserId::from).ifPresent(commandBuilder::createdBy);
commandService.create(buildNachrichtCommand(userId, nachricht));
return commandBuilder;
setHasNewPostfachNachricht(nachricht);
}
OzgCloudCommand buildNachrichtCommand(OzgCloudCommand.OzgCloudCommandBuilder commandBuilder, PostfachNachricht nachricht) {
return StringUtils.isBlank(nachricht.getId()) ? buildCreateCommand(commandBuilder, nachricht) : buildUpdateCommand(commandBuilder, nachricht);
OzgCloudCommand buildNachrichtCommand(Optional<String> userId, PostfachNachricht nachricht) {
return StringUtils.isBlank(nachricht.getId()) ? buildCreateCommand(userId, nachricht) : buildUpdateCommand(userId, nachricht);
}
OzgCloudCommand buildCreateCommand(OzgCloudCommand.OzgCloudCommandBuilder builder, PostfachNachricht nachricht) {
return builder.order(CREATE_ATTACHED_ITEM_ORDER)
.relationId(OzgCloudVorgangId.from(nachricht.getVorgangId()))
.bodyObject(buildCreateItem(nachricht))
.build();
}
OzgCloudCommand buildUpdateCommand(OzgCloudCommand.OzgCloudCommandBuilder builder, PostfachNachricht nachricht) {
return builder
.order(UPDATE_ATTACHED_ITEM_ORDER)// TOCHECK: Auf Patch umstellen
OzgCloudCommand buildUpdateCommand(Optional<String> userId, PostfachNachricht nachricht) {
return createBaseCommandBuilder(userId, nachricht)
.order(UPDATE_ATTACHED_ITEM_ORDER)
.relationId(NachrichtId.from(nachricht.getId()))
.bodyObject(buildUpdateItem(nachricht))
.build();
......@@ -124,25 +109,32 @@ public class PersistPostfachNachrichtServiceImpl implements PersistPostfachNachr
// TODO pruefen ob referencedNachricht in dem postfach des anfragenden liegt
@Override
public String persistAnswer(String referencedNachrichtId, PostfachNachricht answer) {
var commandId = commandService.create(buildCommand(setReferencedNachricht(referencedNachrichtId, answer))).getId().toString();
var enhancedAnswer = answer.toBuilder().referencedNachricht(referencedNachrichtId).build();
var command = buildCreateCommand(Optional.ofNullable(answer.getCreatedBy()), enhancedAnswer);
var commandId = commandService.create(command).getId().toString();
setHasNewPostfachNachricht(answer);
return commandId;
}
private PostfachNachricht setReferencedNachricht(String referencedNachrichtId, PostfachNachricht answer) {
return answer.toBuilder().referencedNachricht(referencedNachrichtId).build();
}
OzgCloudCommand buildCommand(PostfachNachricht nachricht) {
return OzgCloudCommand.builder().order(CREATE_ATTACHED_ITEM_ORDER)
.vorgangId(OzgCloudVorgangId.from(nachricht.getVorgangId()))
OzgCloudCommand buildCreateCommand(Optional<String> userId, PostfachNachricht nachricht) {
return createBaseCommandBuilder(userId, nachricht)
.order(CREATE_ATTACHED_ITEM_ORDER)
.relationId(OzgCloudVorgangId.from(nachricht.getVorgangId()))
.bodyObject(buildCreateItem(nachricht))
.build();
}
OzgCloudCommand.OzgCloudCommandBuilder createBaseCommandBuilder(Optional<String> userId, PostfachNachricht nachricht) {
var commandBuilder = OzgCloudCommand.builder().vorgangId(OzgCloudVorgangId.from(nachricht.getVorgangId()));
userId.map(OzgCloudUserId::from).ifPresent(commandBuilder::createdBy);
return commandBuilder;
}
Map<String, Object> buildCreateItem(PostfachNachricht nachricht) {
return Map.of(
CLIENT_FIELD, CLIENT,
......
......@@ -52,27 +52,18 @@ class PersistPostfachNachrichtServiceImplTest {
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.createBuilder().id(null).build();
private final OzgCloudCommand.OzgCloudCommandBuilder commandBuilder = OzgCloudCommand.builder();
private final OzgCloudCommand command = OzgCloudCommand.builder().build();
@BeforeEach
void mock() {
doReturn(commandBuilder).when(service).createBaseCommandBuilder(any(), any());
doReturn(command).when(service).buildNachrichtCommand(any(), any());
}
@Test
void shouldCreateBaseCommandBuilder() {
persistNachricht();
verify(service).createBaseCommandBuilder(userIdOpt, nachricht);
}
@Test
void shouldBuildNachrichtCommand() {
persistNachricht();
verify(service).buildNachrichtCommand(commandBuilder, nachricht);
verify(service).buildNachrichtCommand(userIdOpt, nachricht);
}
@Test
......@@ -134,7 +125,9 @@ class PersistPostfachNachrichtServiceImplTest {
@Nested
class TestBuildNachrichtCommand {
private final OzgCloudCommand.OzgCloudCommandBuilder commandBuilder = OzgCloudCommand.builder();
private final String userId = UUID.randomUUID().toString();
private final Optional<String> userIdOpt = Optional.of(userId);
private final OzgCloudCommand command = OzgCloudCommand.builder().build();
@DisplayName("on present id")
......@@ -150,14 +143,14 @@ class PersistPostfachNachrichtServiceImplTest {
@Test
void shouldBuildUpdateCommand() {
service.buildNachrichtCommand(commandBuilder, nachricht);
service.buildNachrichtCommand(userIdOpt, nachricht);
verify(service).buildUpdateCommand(commandBuilder, nachricht);
verify(service).buildUpdateCommand(userIdOpt, nachricht);
}
@Test
void shouldReturnValue() {
var nachrichtCommand = service.buildNachrichtCommand(commandBuilder, nachricht);
var nachrichtCommand = service.buildNachrichtCommand(userIdOpt, nachricht);
assertThat(nachrichtCommand).isEqualTo(command);
}
......@@ -176,62 +169,38 @@ class PersistPostfachNachrichtServiceImplTest {
@Test
void shouldBuildCreateCommand() {
service.buildNachrichtCommand(commandBuilder, nachricht);
service.buildNachrichtCommand(userIdOpt, nachricht);
verify(service).buildCreateCommand(commandBuilder, nachricht);
verify(service).buildCreateCommand(userIdOpt, nachricht);
}
@Test
void shouldReturnValue() {
var nachrichtCommand = service.buildNachrichtCommand(commandBuilder, nachricht);
var nachrichtCommand = service.buildNachrichtCommand(userIdOpt, nachricht);
assertThat(nachrichtCommand).isEqualTo(command);
}
}
@DisplayName("for creation")
@DisplayName("for update")
@Nested
class TestBuildCreateCommand {
class TestBuildUpdateCommand {
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.createBuilder().id(null).build();
private final Map<String, Object> itemMap = Map.of("dummyKey", "dummyValue");
private final OzgCloudCommand.OzgCloudCommandBuilder commandBuilder = OzgCloudCommand.builder();
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.create();
@BeforeEach
void mock() {
doReturn(itemMap).when(service).buildCreateItem(any());
}
@Test
void shouldContainOrder() {
var command = buildCreateCommand();
assertThat(command.getOrder()).isEqualTo(PersistPostfachNachrichtServiceImpl.CREATE_ATTACHED_ITEM_ORDER);
}
@Test
void shouldContainRelationId() {
var command = buildCreateCommand();
assertThat(command.getRelationId()).hasToString(MessageTestFactory.VORGANG_ID);
doReturn(commandBuilder).when(service).createBaseCommandBuilder(any(), any());
}
@Test
void shouldContainBodyObject() {
var command = buildCreateCommand();
assertThat(command.getBodyObject()).isEqualTo(itemMap);
}
void shouldCallCreateBaseCommandBuilder() {
buildUpdateCommand();
private OzgCloudCommand buildCreateCommand() {
return service.buildCreateCommand(commandBuilder, nachricht);
verify(service).createBaseCommandBuilder(userIdOpt, nachricht);
}
}
@DisplayName("for update")
@Nested
class TestBuildUpdateCommand {
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.create();
@Test
void shouldContainOrder() {
......@@ -282,7 +251,7 @@ class PersistPostfachNachrichtServiceImplTest {
}
private OzgCloudCommand buildUpdateCommand() {
return service.buildUpdateCommand(commandBuilder, nachricht);
return service.buildUpdateCommand(userIdOpt, nachricht);
}
}
}
......@@ -295,11 +264,11 @@ class PersistPostfachNachrichtServiceImplTest {
private ArgumentCaptor<PostfachNachricht> postfachNachrichtCaptor;
private final OzgCloudCommand command = OzgCloudCommand.builder().id(OzgCloudCommandId.from(UUID.randomUUID().toString())).build();
private final PostfachNachricht postfachNachricht = PostfachNachrichtTestFactory.createBuilder().referencedNachricht(null).build();
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.createBuilder().referencedNachricht(null).build();
@BeforeEach
void mock() {
doReturn(command).when(service).buildCommand(any());
doReturn(command).when(service).buildCreateCommand(any(), any());
when(commandService.create(any())).thenReturn(command);
}
......@@ -307,7 +276,7 @@ class PersistPostfachNachrichtServiceImplTest {
void shouldCallBuildCommand() {
persistAnswer();
verify(service).buildCommand(postfachNachrichtCaptor.capture());
verify(service).buildCreateCommand(eq(Optional.of(PostfachNachrichtTestFactory.CREATED_BY)), postfachNachrichtCaptor.capture());
assertThat(postfachNachrichtCaptor.getValue().getReferencedNachricht()).isEqualTo(GrpcPostfachMailTestFactory.REFERENCED_NACHRICHT_ID);
}
......@@ -322,58 +291,62 @@ class PersistPostfachNachrichtServiceImplTest {
void shouldSetHasNewPostfachNachricht() {
persistAnswer();
verify(service).setHasNewPostfachNachricht(postfachNachricht);
verify(service).setHasNewPostfachNachricht(nachricht);
}
void persistAnswer() {
service.persistAnswer(GrpcPostfachMailTestFactory.REFERENCED_NACHRICHT_ID, postfachNachricht);
service.persistAnswer(GrpcPostfachMailTestFactory.REFERENCED_NACHRICHT_ID, nachricht);
}
}
@DisplayName("Build command")
@DisplayName("Build create command")
@Nested
class TestBuildCommand {
class TestBuildCreateCommand {
private final PostfachNachricht postfachNachricht = PostfachNachrichtTestFactory.create();
private final OzgCloudCommand.OzgCloudCommandBuilder commandBuilder = OzgCloudCommand.builder();
private final String userId = UUID.randomUUID().toString();
private final Optional<String> userIdOpt = Optional.of(userId);
private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.createBuilder().id(null).build();
private final Map<String, Object> itemMap = Map.of("dummyKey", "dummyValue");
@BeforeEach
void mock() {
doReturn(Map.of("dummyKey", "dummyValue")).when(service).buildCreateItem(any());
doReturn(itemMap).when(service).buildCreateItem(any());
doReturn(commandBuilder).when(service).createBaseCommandBuilder(any(), any());
}
@Test
void shouldHaveSetOrder() {
var command = service.buildCommand(postfachNachricht);
void shouldCallCreateBaseCommandBuilder() {
buildCreateCommand();
assertThat(command.getOrder()).isEqualTo(PersistPostfachNachrichtServiceImpl.CREATE_ATTACHED_ITEM_ORDER);
verify(service).createBaseCommandBuilder(userIdOpt, nachricht);
}
@Test
void shouldHaveSetVorgangId() {
var command = service.buildCommand(postfachNachricht);
void shouldContainOrder() {
var command = buildCreateCommand();
assertThat(command.getVorgangId()).hasToString(MessageTestFactory.VORGANG_ID);
assertThat(command.getOrder()).isEqualTo(PersistPostfachNachrichtServiceImpl.CREATE_ATTACHED_ITEM_ORDER);
}
@Test
void shouldHaveSetRelationId() {
var command = service.buildCommand(postfachNachricht);
void shouldContainRelationId() {
var command = buildCreateCommand();
assertThat(command.getRelationId()).hasToString(MessageTestFactory.VORGANG_ID);
}
@Test
void shouldCallBuildCommandBody() {
service.buildCommand(postfachNachricht);
void shouldContainBodyObject() {
var command = buildCreateCommand();
verify(service).buildCreateItem(postfachNachricht);
assertThat(command.getBodyObject()).isEqualTo(itemMap);
}
@Test
void shouldHaveSetBodyObjet() {
var command = service.buildCommand(postfachNachricht);
assertThat(command.getBodyObject()).isNotEmpty();
private OzgCloudCommand buildCreateCommand() {
return service.buildCreateCommand(userIdOpt, nachricht);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment