Skip to content
Snippets Groups Projects
Commit d14079ca authored by Tobias Bruns's avatar Tobias Bruns
Browse files

OZG-7689 add technical details to error note

parent 161c6d41
Branches
No related tags found
1 merge request!3Ozg 7689 erweitern
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
package de.ozgcloud.processor.result; package de.ozgcloud.processor.result;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import de.ozgcloud.processor.ProcessorManagerConfiguration; import de.ozgcloud.processor.ProcessorManagerConfiguration;
...@@ -34,7 +35,8 @@ public class AktennotizFactory { ...@@ -34,7 +35,8 @@ public class AktennotizFactory {
static final String AKTENNOTIZ_ERROR_TEXT = """ static final String AKTENNOTIZ_ERROR_TEXT = """
Bei der Verarbeitung im Processor '%s' ist ein Fehler aufgetreten. Bei der Verarbeitung im Processor '%s' ist ein Fehler aufgetreten.
ExceptionId: %s ExceptionId: %s.
Meldung: %s.
"""; """;
public Aktennotiz createFrom(ProcessorResult processorResult) { public Aktennotiz createFrom(ProcessorResult processorResult) {
...@@ -47,9 +49,9 @@ public class AktennotizFactory { ...@@ -47,9 +49,9 @@ public class AktennotizFactory {
.build(); .build();
} }
public Aktennotiz createErrorAktennotiz(VorgangId vorgangId, String processorName, String exceptionId) { public Aktennotiz createErrorAktennotiz(ProcessorTechnicalException e) {
return createErrorAktennotizBuilder(vorgangId) return createErrorAktennotizBuilder(VorgangId.from(e.getVorgangId()))
.text(buildErrorText(processorName, exceptionId)) .text(buildErrorText(e.getProcessorName(), e.getExceptionId(), ExceptionUtils.getRootCauseMessage(e)))
.build(); .build();
} }
...@@ -60,8 +62,8 @@ public class AktennotizFactory { ...@@ -60,8 +62,8 @@ public class AktennotizFactory {
.headline("Fehler"); .headline("Fehler");
} }
String buildErrorText(String processorName, String exceptionId) { String buildErrorText(String processorName, String exceptionId, String causeMessage) {
return AKTENNOTIZ_ERROR_TEXT.formatted(processorName, exceptionId); return AKTENNOTIZ_ERROR_TEXT.formatted(processorName, exceptionId, causeMessage);
} }
} }
...@@ -54,12 +54,10 @@ public class ResultService { ...@@ -54,12 +54,10 @@ public class ResultService {
public void processError(Throwable cause, VorgangId vorgangId) { public void processError(Throwable cause, VorgangId vorgangId) {
if (cause instanceof ProcessorTechnicalException exception) { if (cause instanceof ProcessorTechnicalException exception) {
addAktenNotiz( addAktenNotiz(aktennotizFactory.createErrorAktennotiz(exception));
aktennotizFactory.createErrorAktennotiz(VorgangId.from(exception.getVorgangId()), exception.getProcessorName(),
exception.getExceptionId()));
} else { } else {
addAktenNotiz(aktennotizFactory.createErrorAktennotizBuilder(vorgangId) addAktenNotiz(aktennotizFactory.createErrorAktennotizBuilder(vorgangId)
.text("Es ist eine Fehler bei der Verarbeitung des Vorganges aufgetreten").build()); .text("Es ist eine Fehler bei der Verarbeitung des Vorganges aufgetreten.").build());
} }
} }
......
...@@ -108,7 +108,7 @@ class AktennotizFactoryTest { ...@@ -108,7 +108,7 @@ class AktennotizFactoryTest {
@Test @Test
void shouldSetText() { void shouldSetText() {
var errorText = "errorText"; var errorText = "errorText";
doReturn(errorText).when(factory).buildErrorText(anyString(), anyString()); doReturn(errorText).when(factory).buildErrorText(anyString(), anyString(), anyString());
var aktennotiz = createErrorAktennotiz(); var aktennotiz = createErrorAktennotiz();
...@@ -116,7 +116,7 @@ class AktennotizFactoryTest { ...@@ -116,7 +116,7 @@ class AktennotizFactoryTest {
} }
private Aktennotiz createErrorAktennotiz() { private Aktennotiz createErrorAktennotiz() {
return factory.createErrorAktennotiz(VORGANG_ID, PROCESSOR_NAME, EXCEPTION_ID); return factory.createErrorAktennotiz(new ProcessorTechnicalException(VORGANG_ID.toString(), PROCESSOR_NAME, EXCEPTION_ID));
} }
} }
...@@ -127,7 +127,7 @@ class AktennotizFactoryTest { ...@@ -127,7 +127,7 @@ class AktennotizFactoryTest {
void shouldAddProcessorName() { void shouldAddProcessorName() {
var processorName = "processorName"; var processorName = "processorName";
var errorText = factory.buildErrorText(processorName, ""); var errorText = factory.buildErrorText(processorName, "", "");
assertThat(errorText).contains(processorName); assertThat(errorText).contains(processorName);
} }
...@@ -136,9 +136,18 @@ class AktennotizFactoryTest { ...@@ -136,9 +136,18 @@ class AktennotizFactoryTest {
void shouldAddExceptionId() { void shouldAddExceptionId() {
var exceptionId = "exceptionId"; var exceptionId = "exceptionId";
var errorText = factory.buildErrorText("", exceptionId); var errorText = factory.buildErrorText("", exceptionId, "");
assertThat(errorText).contains(exceptionId); assertThat(errorText).contains(exceptionId);
} }
@Test
void shouldAddRootCause() {
var rootCause = "cause";
var errorText = factory.buildErrorText("", "", rootCause);
assertThat(errorText).contains(rootCause);
}
} }
} }
\ No newline at end of file
...@@ -38,7 +38,6 @@ import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId; ...@@ -38,7 +38,6 @@ import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.processor.processor.ProcessorResult; import de.ozgcloud.processor.processor.ProcessorResult;
import de.ozgcloud.processor.processor.ProcessorResultTestFactory; import de.ozgcloud.processor.processor.ProcessorResultTestFactory;
import de.ozgcloud.processor.processor.ProcessorTestFactory;
import de.ozgcloud.processor.vorgang.VorgangTestFactory; import de.ozgcloud.processor.vorgang.VorgangTestFactory;
class ResultServiceTest { class ResultServiceTest {
...@@ -83,26 +82,19 @@ class ResultServiceTest { ...@@ -83,26 +82,19 @@ class ResultServiceTest {
@Nested @Nested
class TestProcessError { class TestProcessError {
private static final String EXCEPTION_ID = "exceptionId";
@Mock @Mock
private ProcessorTechnicalException exception; private ProcessorTechnicalException exception;
@BeforeEach @BeforeEach
void setup() { void setup() {
when(exception.getVorgangId()).thenReturn(VorgangTestFactory.ID.toString()); when(aktennotizFactory.createErrorAktennotiz(any())).thenReturn(aktennotiz);
when(exception.getExceptionId()).thenReturn(EXCEPTION_ID);
when(aktennotizFactory.createErrorAktennotiz(any(), any(), any())).thenReturn(aktennotiz);
} }
@Test @Test
void shouldCallCreateErrorAktennotiz() { void shouldCallCreateErrorAktennotiz() {
when(exception.getProcessorName()).thenReturn(ProcessorTestFactory.PROCESSOR_NAME);
when(exception.getExceptionId()).thenReturn(EXCEPTION_ID);
resultService.processError(exception, VorgangTestFactory.ID); resultService.processError(exception, VorgangTestFactory.ID);
verify(aktennotizFactory).createErrorAktennotiz(VorgangTestFactory.ID, ProcessorTestFactory.PROCESSOR_NAME, EXCEPTION_ID); verify(aktennotizFactory).createErrorAktennotiz(exception);
} }
@Test @Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment