aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java')
-rw-r--r--src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java78
1 files changed, 49 insertions, 29 deletions
diff --git a/src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java b/src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java
index c08d567..e145cd9 100644
--- a/src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java
+++ b/src/test/java/at/gv/egiz/moazs/SingleThreadedDeliveryPipelineTest.java
@@ -1,12 +1,14 @@
package at.gv.egiz.moazs;
-import at.gv.egiz.moazs.util.ClientFactory;
-import at.gv.egiz.moazs.pipeline.DeliveryPipeline;
-import at.gv.egiz.moazs.pipeline.SingleThreadedDeliveryPipeline;
+import at.gv.egiz.moazs.process.DeliveryPipeline;
+import at.gv.egiz.moazs.process.SingleThreadedDeliveryPipeline;
+import at.gv.egiz.moazs.client.TnvzHelper;
+import at.gv.egiz.moazs.repository.BinaryRepository;
+import at.gv.egiz.moazs.repository.InMemoryBinaryRepository;
+import at.gv.egiz.moazs.scheme.*;
+import at.gv.egiz.moazs.client.ClientFactory;
import at.gv.egiz.moazs.repository.DeliveryRepository;
import at.gv.egiz.moazs.repository.InMemoryDeliveryRepository;
-import at.gv.egiz.moazs.scheme.Mzs2MsgConverter;
-import at.gv.egiz.moazs.scheme.TnvzHelper;
import at.gv.egiz.moazs.verify.MoaSPSSSignatureVerifier;
import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType;
import at.gv.zustellung.msg.xsd.App2ZusePort;
@@ -22,6 +24,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import static at.gv.egiz.moazs.MoaZSException.moaZSException;
import static at.gv.egiz.moazs.MoaZSException.moaZSExceptionBuilder;
+import static at.gv.egiz.moazs.scheme.RequestStatusResponse.getResponseID;
import static at.gv.zustellung.app2mzs.xsd.ClientType.clientTypeBuilder;
import static at.gv.zustellung.app2mzs.xsd.ConfigType.configTypeBuilder;
import static at.gv.zustellung.app2mzs.xsd.DeliveryRequestType.deliveryRequestTypeBuilder;
@@ -37,6 +40,7 @@ import static org.mockito.Mockito.*;
public class SingleThreadedDeliveryPipelineTest {
private DeliveryRepository repository = new InMemoryDeliveryRepository();
+ private BinaryRepository binaryRepository = new InMemoryBinaryRepository(30);
@Mock
private TnvzHelper tnvzHelper;
@@ -61,57 +65,70 @@ public class SingleThreadedDeliveryPipelineTest {
@Before
public void setup() {
- pipeline = new SingleThreadedDeliveryPipeline(repository, tnvzHelper, converter, clientFactory, verifier);
+ pipeline = new SingleThreadedDeliveryPipeline(
+ repository,
+ binaryRepository,
+ tnvzHelper,
+ converter,
+ clientFactory,
+ verifier);
}
@Test
public void executePipelineWithoutTnvzRequest() {
- var appDeliveryId = "no-tnvz-request";
- var expectedStatus = setupMocks(appDeliveryId, false);
+ var appDeliveryID = "no-tnvz-request";
+ var expectedStatus = setupMocks(appDeliveryID, false);
- pipeline.processRequest(appDeliveryId);
+ pipeline.processRequest(appDeliveryID);
verifyZeroInteractions(tnvzHelper);
- var actualStatus = repository.getDeliveryRequestStatus(appDeliveryId).get();
+ var response = repository.getResponse(getResponseID(appDeliveryID)).get();
+ var actualStatus = (DeliveryRequestStatusType) response.getResponse();
assertThat(actualStatus).isEqualTo(expectedStatus);
}
@Test
public void rejectDeliveryWhenReceiverIsNotAddressable() {
- var appDeliveryId = "not-addressable";
- setupMocks(appDeliveryId, true);
+ var appDeliveryID = "not-addressable";
+ setupMocks(appDeliveryID, true);
when(tnvzHelper.performQueryPersonRequest(any(), any(), any()))
- .thenThrow(buildMzsException("400"));
+ .thenThrow(buildMzsException("400", appDeliveryID));
- pipeline.processRequest(appDeliveryId);
- var actualCode = repository.getDeliveryRequestStatus(appDeliveryId).get()
- .getError().getErrorInfo().getCode();
+ pipeline.processRequest(appDeliveryID);
+
+ var responseId = getResponseID(appDeliveryID);
+ var response = repository.getResponse(responseId).get();
+ var status = (DeliveryRequestStatusType) response.getResponse();
+ var actualCode = status.getError().getErrorInfo().getCode();
- verify(tnvzHelper).performQueryPersonRequest(any(), any(), any());
assertThat(actualCode).isEqualTo("400");
+ verifyZeroInteractions(converter);
+ verify(tnvzHelper).performQueryPersonRequest(any(), any(), any());
}
@Test
public void executePipelineWithTnvzRequest() {
- var appDeliveryId = "tnvz-request";
- var expectedStatus = setupMocks(appDeliveryId, true);
+ var appDeliveryID = "tnvz-request";
+ var expectedStatus = setupMocks(appDeliveryID, true);
- pipeline.processRequest(appDeliveryId);
- var actualStatus = repository.getDeliveryRequestStatus(appDeliveryId).get();
+ pipeline.processRequest(appDeliveryID);
+ var response = repository.getResponse(getResponseID(appDeliveryID)).get();
+ var actualStatus = (DeliveryRequestStatusType) response.getResponse();
assertThat(actualStatus).isEqualTo(expectedStatus);
}
@Test
public void rejectInvalidSignature() {
- var appDeliveryId = "invalid-signature";
- setupMocks(appDeliveryId, true);
+ var appDeliveryID = "invalid-signature";
+ setupMocks(appDeliveryID, true);
doThrow(moaZSException("Signature Invalid!")).when(verifier).verify(any());
- pipeline.processRequest(appDeliveryId);
- var actualCode = repository.getDeliveryRequestStatus(appDeliveryId).get()
- .getError().getErrorInfo().getCode();
+ pipeline.processRequest(appDeliveryID);
+ var response = repository.getResponse(getResponseID(appDeliveryID)).get();
+ var status = (DeliveryRequestStatusType) response.getResponse();
+ var actualCode = status.getError().getErrorInfo().getCode();
assertThat(actualCode).isEqualTo(MoaZSException.ERROR_MOASP_SIGNATURE_INVALID);
@@ -125,7 +142,7 @@ public class SingleThreadedDeliveryPipelineTest {
var signedStatus = new byte[0];
var identification = IdentificationType.identificationTypeBuilder().build();
repository.add(mzsRequest);
- repository.addSignedDeliveryRequestStatus(signedStatus, appDeliveryId);
+ binaryRepository.add(getResponseID(appDeliveryId), signedStatus);
when(converter.convert(eq(mzsRequest) )).thenReturn(msgRequest);
when(converter.convert(eq(mzsRequest), any())).thenReturn(msgRequest);
@@ -140,8 +157,11 @@ public class SingleThreadedDeliveryPipelineTest {
}
- private MoaZSException buildMzsException(String code) {
- return moaZSExceptionBuilder("").withErrorCode(code).build();
+ private MoaZSException buildMzsException(String code, String appDeliveryID) {
+ return moaZSExceptionBuilder("")
+ .withErrorCode(code)
+ .withAppDeliveryID(appDeliveryID)
+ .build();
}
private DeliveryRequestStatusType setupStatus(String appDeliveryId) {