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

OZG-6362 PR Kommentare bearbeitet

parent 9da2e601
No related branches found
No related tags found
No related merge requests found
...@@ -30,9 +30,6 @@ import java.util.Set; ...@@ -30,9 +30,6 @@ import java.util.Set;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Stream; import java.util.stream.Stream;
import jakarta.annotation.PostConstruct;
import jakarta.validation.Valid;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
...@@ -46,6 +43,8 @@ import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction; ...@@ -46,6 +43,8 @@ import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht.ReplyOption; import de.ozgcloud.nachrichten.postfach.PostfachNachricht.ReplyOption;
import de.ozgcloud.nachrichten.postfach.osi.OsiPostfachServerProcessException; import de.ozgcloud.nachrichten.postfach.osi.OsiPostfachServerProcessException;
import de.ozgcloud.vorgang.callcontext.CurrentUserService; import de.ozgcloud.vorgang.callcontext.CurrentUserService;
import jakarta.annotation.PostConstruct;
import jakarta.validation.Valid;
import lombok.NonNull; import lombok.NonNull;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -54,7 +53,7 @@ import lombok.extern.log4j.Log4j2; ...@@ -54,7 +53,7 @@ import lombok.extern.log4j.Log4j2;
@Validated @Validated
class PostfachService { class PostfachService {
static final Predicate<PostfachNachricht> IS_MUK_ANTWORT = nachricht -> StringUtils.isEmpty(nachricht.getVorgangId()) && StringUtils.isNotEmpty( static final Predicate<PostfachNachricht> IS_MUK_ANSWER = nachricht -> StringUtils.isEmpty(nachricht.getVorgangId()) && StringUtils.isNotEmpty(
nachricht.getReferencedNachricht()); nachricht.getReferencedNachricht());
static final Set<ReplyOption> REPLY_POSSIBLE_OPTION = EnumSet.of(ReplyOption.POSSIBLE, ReplyOption.MANDATORY); static final Set<ReplyOption> REPLY_POSSIBLE_OPTION = EnumSet.of(ReplyOption.POSSIBLE, ReplyOption.MANDATORY);
private static final Predicate<PostfachNachricht> IS_FROM_HUMAN_USER = nachricht -> !StringUtils.startsWith(nachricht.getCreatedBy(), "system"); private static final Predicate<PostfachNachricht> IS_FROM_HUMAN_USER = nachricht -> !StringUtils.startsWith(nachricht.getCreatedBy(), "system");
...@@ -125,19 +124,18 @@ class PostfachService { ...@@ -125,19 +124,18 @@ class PostfachService {
} }
private void persistReceivedMail(PostfachNachricht nachricht) { private void persistReceivedMail(PostfachNachricht nachricht) {
if (IS_MUK_ANTWORT.test(nachricht)) { if (IS_MUK_ANSWER.test(nachricht)) {
var persistedNachricht = getNachricht(nachricht.getReferencedNachricht()); nachricht = linkToVorgang(nachricht);
nachricht = nachricht.toBuilder().vorgangId(persistedNachricht.getVorgangId()).build();
} }
persistMail(Optional.empty(), nachricht); persistMail(Optional.empty(), nachricht);
postfachRemoteService.deleteMessage(nachricht.getMessageId()); postfachRemoteService.deleteMessage(nachricht.getMessageId());
} }
PostfachNachricht getNachricht(String id) { PostfachNachricht linkToVorgang(PostfachNachricht nachricht) {
return mapper.fromMapToPostfachMail(persistingService.getById(id)); var persistedNachricht = mapper.fromMapToPostfachMail(persistingService.getById(nachricht.getReferencedNachricht()));
return nachricht.toBuilder().vorgangId(persistedNachricht.getVorgangId()).build();
} }
void persistMail(Optional<String> userId, PostfachNachricht mail) { void persistMail(Optional<String> userId, PostfachNachricht mail) {
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
*/ */
package de.ozgcloud.nachrichten.postfach; package de.ozgcloud.nachrichten.postfach;
import static de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
...@@ -796,41 +797,49 @@ class PostfachServiceTest { ...@@ -796,41 +797,49 @@ class PostfachServiceTest {
} }
@Nested @Nested
class TestSavingMukAntwort { class TestSavingMukAnswer {
private final String refId = ObjectId.get().toHexString(); private final String refId = ObjectId.get().toHexString();
private PostfachNachricht antwort; private PostfachNachricht answer = PostfachNachrichtTestFactory.createBuilder().vorgangId(null).referencedNachricht(refId).build();
@BeforeEach
void setup() {
antwort = PostfachNachrichtTestFactory.createBuilder().vorgangId(null).referencedNachricht(refId).build();
}
@Test @Test
void shouldIdentifyAsAntwort() { void shouldIdentifyAsAnswer() {
assertThat(PostfachService.IS_MUK_ANTWORT.test(antwort)).isTrue(); var isMukAnswer = PostfachService.IS_MUK_ANSWER.test(answer);
assertThat(isMukAnswer).isTrue();
} }
@Test @Test
void shouldNotIdentifyAsAntwort() { void shouldNotIdentifyAsAnswer() {
assertThat(PostfachService.IS_MUK_ANTWORT.test(PostfachNachrichtTestFactory.create())).isFalse(); var isMukAnswer = PostfachService.IS_MUK_ANSWER.test(PostfachNachrichtTestFactory.create());
assertThat(isMukAnswer).isFalse();
} }
@Nested @Nested
class TestLinkingMukAntwortToVorgang { class TestLinkingMukAnswerToVorgang {
@BeforeEach @BeforeEach
void setup() { void setup() {
antwort = PostfachNachrichtTestFactory.createBuilder().vorgangId(null).referencedNachricht(refId).build(); answer = PostfachNachrichtTestFactory.createBuilder().vorgangId(null).referencedNachricht(refId).build();
when(service.isPostfachConfigured()).thenReturn(Boolean.TRUE);
when(postfachRemoteService.getAllMessages()).thenReturn(Stream.of(antwort));
} }
@Test @Test
void shouldLoadPersistedNachricht() { void shouldLoadPersistedNachricht() {
when(service.isPostfachConfigured()).thenReturn(Boolean.TRUE);
when(postfachRemoteService.getAllMessages()).thenReturn(Stream.of(answer));
when(persistingService.getById(anyString())).thenReturn(PostfachNachrichtTestFactory.asMap()); when(persistingService.getById(anyString())).thenReturn(PostfachNachrichtTestFactory.asMap());
service.fetchAndPersistReplies(); service.fetchAndPersistReplies();
verify(service).getNachricht(anyString()); verify(persistingService).getById(any());
}
@Test
void shouldSetVorgangId() {
when(persistingService.getById(anyString())).thenReturn(PostfachNachrichtTestFactory.asMap());
var linkedNachricht = service.linkToVorgang(answer);
assertThat(linkedNachricht.getVorgangId()).isEqualTo(VORGANG_ID);
} }
} }
} }
......
-----BEGIN CERTIFICATE-----
MIIDsTCCApmgAwIBAgIUdw/27be5+2vj+MhGtoJjDsMsdDEwDQYJKoZIhvcNAQEL
BQAwaDELMAkGA1UEBhMCREUxDzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwITXVl
bmNoZW4xDzANBgNVBAoMBm1nbSB0cDEkMCIGCSqGSIb3DQEJARYVamVucy5yZWVz
ZUBtZ20tdHAuY29tMB4XDTI0MDExNjEyMjI0OVoXDTI1MDExNTEyMjI0OVowaDEL
MAkGA1UEBhMCREUxDzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwITXVlbmNoZW4x
DzANBgNVBAoMBm1nbSB0cDEkMCIGCSqGSIb3DQEJARYVamVucy5yZWVzZUBtZ20t
dHAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/HBBWBDSrEgd
wXkSy15V00EaVTyLgc4vh/JcDiGIYZSqmcMwBd+B1u36xbdBf/duEtCUymMNP48O
MjgFZtR6xn0meuR4NR6Ykn9mYGdU/GhldGuGv9XLAEAkVuTlo0H1QYyBS/6JwKQo
SsHDkJ3YwDwKcyOt7QtpSadRZjQEN3gDvWoRYjgXTxj2I1ovllmi0zOHsFi5PBIu
iPWUdJvBrHxpD/XVS9R/qzJpHPu3bjQ6UVRmhiZCUF7H5F/PQNwk+qXvjV0ooBeS
WWO5hywhk4OP4QEgbYMOSo20YukYX8TJEsum1pwIcQrw7kW4GyKaAycyRsa1fbM3
tEkj+TiBKwIDAQABo1MwUTAdBgNVHQ4EFgQUfDL/6R33SJodsONCvxKy96AtU18w
HwYDVR0jBBgwFoAUfDL/6R33SJodsONCvxKy96AtU18wDwYDVR0TAQH/BAUwAwEB
/zANBgkqhkiG9w0BAQsFAAOCAQEA+PCnvSwKU+bArTCIg5lfrwONbzKkjvPUymDN
YX3oj1wVEN75hNf0RD7Rr0//ZYT3Rt0G193gjDcH1gbGIYhMLeGGkxEous2l3O+p
RIQRR+hprjr6HzF8IphaJy1RbDwyGsXyLcyOylPL4cX9IjUdhklHiLZusBq95LSy
w7hsCOAL2+vn816O7yv+28EWXXbnP2XEUjW36nxcZvR6oTJUplXyHRuuJJTsOxGR
NuXA3UVgNbkdm1HnoSGpnsGdUKsUFoEmEJkcSdQRwxeH21WzYGOZmKMcvx2gObaS
P8tafWh5z4Jx+Z7z5WP72Jt44/lnVjaV8aGo0KHXwgqQOtYftQ==
-----END CERTIFICATE-----
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment