diff options
Diffstat (limited to 'src/test')
5 files changed, 123 insertions, 23 deletions
| diff --git a/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java b/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java index 5579f06..03992ae 100644 --- a/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java +++ b/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java @@ -6,6 +6,7 @@ import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.D  import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.ObjectFactory;  import at.gv.egiz.moazs.pipeline.DeliveryPipeline;  import at.gv.egiz.moazs.repository.DeliveryRepository; +import org.hamcrest.Matchers;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.slf4j.Logger; @@ -24,9 +25,12 @@ import java.net.http.HttpClient;  import java.net.http.HttpRequest;  import java.net.http.HttpResponse;  import java.nio.file.Paths; +import java.util.Arrays;  import static java.net.http.HttpClient.Version; -import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.text.StringContainsInOrder.stringContainsInOrder; +import static org.junit.Assert.assertEquals;  @RunWith(SpringRunner.class)  @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) @@ -63,42 +67,43 @@ public class App2MzsServiceTest {          }      } -      @Test      public void acceptValidDeliveryRequest() throws IOException, InterruptedException { +        var response = sendDeliveryRequestFile("validDeliveryRequest.soap"); +        assertEquals(200, response.statusCode()); +    } -        final String payloadFile = basePath + "validDeliveryRequest.soap"; - -        var client = HttpClient.newBuilder().version(Version.HTTP_1_1).build(); -        var request = HttpRequest.newBuilder() -                .uri(URI.create(serviceUri)) -                .header("Content-Type", "text/xml;charset=UTF-8") -                .header("SOAPAction", "\"\"") -                .POST(HttpRequest.BodyPublishers.ofFile(Paths.get(payloadFile))) -                .build(); - -        var response = client.send(request, HttpResponse.BodyHandlers.ofString()); -        logger.info("response.body was " + response.body()); -        logger.info("response.code was " + response.statusCode()); -        assertThat(response.statusCode()).isEqualTo(200); +    @Test +    public void rejectFormallyIncorrectDeliveryRequest() throws IOException, InterruptedException { +        var response = sendDeliveryRequestFile("formallyIncorrectDeliveryRequest.soap"); +        assertEquals(500, response.statusCode()); +    } +    @Test +    public void rejectRequestWithoutAppDeliveryID() throws IOException, InterruptedException { +        var response = sendDeliveryRequestFile("missingAppDeliveryId.soap"); +        assertEquals(200, response.statusCode()); +        assertThat(response.body(), stringContainsInOrder(Arrays.asList("Code>", "500", "/", "Code>")));      }      @Test -    public void rejectFormallyIncorrectDeliveryRequest() throws IOException, InterruptedException { +    public void rejectRequestWithoutMetaData() throws IOException, InterruptedException { +        var response = sendDeliveryRequestFile("missingMetaData.soap"); +        assertEquals(500, response.statusCode()); +    } -        var invalidDeliveryRequest = basePath + "formallyIncorrectDeliveryRequest.soap"; +    private HttpResponse<String> sendDeliveryRequestFile(String fileName) throws IOException, InterruptedException { +        var path = basePath + fileName;          var client = HttpClient.newBuilder().version(Version.HTTP_1_1).build();          var request = HttpRequest.newBuilder()                  .uri(URI.create(serviceUri))                  .header("Content-Type", "text/xml;charset=UTF-8")                  .header("SOAPAction", "\"\"") -                .POST(HttpRequest.BodyPublishers.ofFile(Paths.get(invalidDeliveryRequest))) +                .POST(HttpRequest.BodyPublishers.ofFile(Paths.get(path)))                  .build(); -        var response = client.send(request, HttpResponse.BodyHandlers.ofString()); -        assertThat(response.statusCode()).isEqualTo(500); +        return client.send(request, HttpResponse.BodyHandlers.ofString());      } diff --git a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/formallyIncorrectDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/formallyIncorrectDeliveryRequest.soap index e8bd7f2..0570005 100644 --- a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/formallyIncorrectDeliveryRequest.soap +++ b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/formallyIncorrectDeliveryRequest.soap @@ -30,7 +30,7 @@      </p:PostalAddress>    </mzs:Receiver>    <mzs:MetaData> -    <mzs:AppDeliveryID>asd</mzs:AppDeliveryID> +    <mzs:AppDeliveryID>formally-incorrect-delivery-request-id</mzs:AppDeliveryID>      <mzs:DeliveryQuality>nonRSa</mzs:DeliveryQuality>      <mzs:RequiresEncryption>false</mzs:RequiresEncryption>    </mzs:MetaData> diff --git a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingAppDeliveryId.soap b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingAppDeliveryId.soap new file mode 100644 index 0000000..e981b31 --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingAppDeliveryId.soap @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<soapenv:Envelope +		xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" +		xmlns:xsd="http://www.w3.org/2001/XMLSchema" +		xmlns:mzs="http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#" +		xmlns:p="http://reference.e-government.gv.at/namespace/zustellung/mzs/persondata#" +		xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" +		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> +	<soapenv:Body> +		<mzs:DeliveryRequest> +			<mzs:Sender> +				<p:CorporateBody> +					<p:FullName>Bundesministerium für Testzwecke</p:FullName> +				</p:CorporateBody> +				<mzs:WebserviceURL>https://authority.gv.at/delivery_notification</mzs:WebserviceURL> +			</mzs:Sender> +			<mzs:Receiver> +				<p:PhysicalPerson> +					<p:Name> +						<p:GivenName>Maxi</p:GivenName> +						<p:FamilyName>Mustermann1</p:FamilyName> +					</p:Name> +					<p:DateOfBirth>1984-01-24</p:DateOfBirth> +				</p:PhysicalPerson> +				<p:PostalAddress> +					<p:CountryCode>AT</p:CountryCode> +					<p:PostalCode>1010</p:PostalCode> +					<p:Municipality>Wien</p:Municipality> +					<p:DeliveryAddress> +						<p:StreetName>Muststrasse</p:StreetName> +						<p:BuildingNumber>10</p:BuildingNumber> +					</p:DeliveryAddress> +				</p:PostalAddress> +			</mzs:Receiver> +			<msg:MetaData /> +			<mzs:Payload> +				<mzs:DocumentReference>https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3</mzs:DocumentReference> +				<mzs:FileName>brief.xml</mzs:FileName> +				<mzs:MIMEType>text/xml</mzs:MIMEType> +				<msg:CheckSum> +					<msg:AlgorithmID>SHA1</msg:AlgorithmID> +					<msg:Value>9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6</msg:Value> +				</msg:CheckSum> +				<mzs:Size>123401</mzs:Size> +			</mzs:Payload> +		</mzs:DeliveryRequest> +	</soapenv:Body> +</soapenv:Envelope> diff --git a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingMetaData.soap b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingMetaData.soap new file mode 100644 index 0000000..4a1e02d --- /dev/null +++ b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/missingMetaData.soap @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<soapenv:Envelope +		xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" +		xmlns:xsd="http://www.w3.org/2001/XMLSchema" +		xmlns:mzs="http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#" +		xmlns:p="http://reference.e-government.gv.at/namespace/zustellung/mzs/persondata#" +		xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" +		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> +	<soapenv:Body> +		<mzs:DeliveryRequest> +			<mzs:Sender> +				<p:CorporateBody> +					<p:FullName>Bundesministerium für Testzwecke</p:FullName> +				</p:CorporateBody> +				<mzs:WebserviceURL>https://authority.gv.at/delivery_notification</mzs:WebserviceURL> +			</mzs:Sender> +			<mzs:Receiver> +				<p:PhysicalPerson> +					<p:Name> +						<p:GivenName>Maxi</p:GivenName> +						<p:FamilyName>Mustermann1</p:FamilyName> +					</p:Name> +					<p:DateOfBirth>1984-01-24</p:DateOfBirth> +				</p:PhysicalPerson> +				<p:PostalAddress> +					<p:CountryCode>AT</p:CountryCode> +					<p:PostalCode>1010</p:PostalCode> +					<p:Municipality>Wien</p:Municipality> +					<p:DeliveryAddress> +						<p:StreetName>Muststrasse</p:StreetName> +						<p:BuildingNumber>10</p:BuildingNumber> +					</p:DeliveryAddress> +				</p:PostalAddress> +			</mzs:Receiver> +			<mzs:Payload> +				<mzs:DocumentReference>https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3</mzs:DocumentReference> +				<mzs:FileName>brief.xml</mzs:FileName> +				<mzs:MIMEType>text/xml</mzs:MIMEType> +				<msg:CheckSum> +					<msg:AlgorithmID>SHA1</msg:AlgorithmID> +					<msg:Value>9b972c70fdaf5e1b26b3387c87b0ffb72e5940b6</msg:Value> +				</msg:CheckSum> +				<mzs:Size>123401</mzs:Size> +			</mzs:Payload> +		</mzs:DeliveryRequest> +	</soapenv:Body> +</soapenv:Envelope> diff --git a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/validDeliveryRequest.soap b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/validDeliveryRequest.soap index d71939b..dcd8c5f 100644 --- a/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/validDeliveryRequest.soap +++ b/src/test/resources/at/gv/egiz/moazs/App2MzsServiceTest/validDeliveryRequest.soap @@ -33,7 +33,7 @@  				</p:PostalAddress>  			</mzs:Receiver>  			<msg:MetaData> -				<msg:AppDeliveryID>asd</msg:AppDeliveryID> +				<msg:AppDeliveryID>valid-delivery-request-id</msg:AppDeliveryID>  				<msg:Subject>WichtigeMitteilung</msg:Subject>  				<msg:DeliveryQuality>RSa</msg:DeliveryQuality>  			</msg:MetaData> | 
