diff --git a/README.md b/README.md index 0956783af..25d6c695b 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ The official releases are tagged and may be downloaded by clicking on [Tags](htt * make sure [JDK 8](http://www.oracle.com/technetwork/java/javase/) is installed (the version we have tested with) * pull the version of interest from [GitHub](https://github.com/difi/oxalis). * from `oxalis` root directory run : `mvn clean install` -* locate assembled artifacts in `oxalis-distribution/target/oxalis-distribution--distro/` (after integration tests) +* locate assembled artifacts in `oxalis-distribution/target/oxalis-distribution--distro/` ## Miscellaneous notes: diff --git a/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/MdnData.java b/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/MdnData.java index 5b5c3d2c1..c1d0f85dc 100644 --- a/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/MdnData.java +++ b/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/MdnData.java @@ -23,6 +23,7 @@ package no.difi.oxalis.as2.model; import no.difi.oxalis.as2.code.As2Header; +import no.difi.oxalis.as2.util.SMimeDigestMethod; import javax.mail.internet.InternetHeaders; import java.util.Date; @@ -118,7 +119,7 @@ public static class Builder { As2Disposition disposition; - Mic mic = new Mic("", ""); + Mic mic = new Mic("", SMimeDigestMethod.sha1); Date date = new Date(); diff --git a/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/Mic.java b/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/Mic.java index 0ca705515..908060c5d 100644 --- a/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/Mic.java +++ b/oxalis-as2/src/main/java/no/difi/oxalis/as2/model/Mic.java @@ -22,6 +22,7 @@ package no.difi.oxalis.as2.model; +import no.difi.oxalis.as2.util.SMimeDigestMethod; import no.difi.vefa.peppol.common.model.Digest; import java.util.Base64; @@ -35,15 +36,16 @@ public class Mic { private final String digestAsString; - private final String algorithmName; + private final SMimeDigestMethod algorithm; public Mic(Digest digest) { - this(Base64.getEncoder().encodeToString(digest.getValue()), "sha1"); + this(Base64.getEncoder().encodeToString(digest.getValue()), + SMimeDigestMethod.findByDigestMethod(digest.getMethod())); } - public Mic(String digestAsString, String algorithmName) { + public Mic(String digestAsString, SMimeDigestMethod algorithm) { this.digestAsString = digestAsString; - this.algorithmName = algorithmName; + this.algorithm = algorithm; } public static Mic valueOf(String receivedContentMic) { @@ -51,13 +53,29 @@ public static Mic valueOf(String receivedContentMic) { if (s.length != 2) { throw new IllegalArgumentException("Invalid mic: '" + receivedContentMic + "'. Required syntax: encoded-message-digest \",\" (sha1|md5)"); } - return new Mic(s[0].trim(), s[1].trim()); + return new Mic(s[0].trim(), SMimeDigestMethod.findByIdentifier(s[1].trim())); } @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append(digestAsString).append(", ").append(algorithmName); - return sb.toString(); + return String.format("%s, %s", digestAsString, algorithm.getIdentifier()); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Mic mic = (Mic) o; + + if (!digestAsString.equals(mic.digestAsString)) return false; + return algorithm.equals(mic.algorithm); + } + + @Override + public int hashCode() { + int result = digestAsString.hashCode(); + result = 31 * result + algorithm.hashCode(); + return result; } } diff --git a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/MdnMimeMessageInspector.java b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/MdnMimeMessageInspector.java index 0e2998845..3c73c0c65 100644 --- a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/MdnMimeMessageInspector.java +++ b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/MdnMimeMessageInspector.java @@ -248,12 +248,13 @@ public boolean isOkOrWarning(Mic outboundMic) { // check if the returned MIC matches our outgoing MIC (sha1 of payload), warn about mic mismatch String receivedMic = mdnFields.get("Received-Content-MIC"); - if (receivedMic != null) { - if (!outboundMic.toString().equalsIgnoreCase(Mic.valueOf(receivedMic).toString())) { - log.warn("MIC mismatch, Received-Content-MIC was : " + receivedMic + " while Outgoing-MIC was : " + outboundMic.toString()); - } - } else { + if (receivedMic == null) { log.error("MIC error, no Received-Content-MIC returned in MDN"); + return false; + } + if (!outboundMic.equals(Mic.valueOf(receivedMic))) { + log.warn("MIC mismatch, Received-Content-MIC was : " + receivedMic + " while Outgoing-MIC was : " + outboundMic.toString()); + return false; } // return when "clean processing state" : Disposition: automatic-action/MDN-sent-automatically; processed diff --git a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SMimeDigestMethod.java b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SMimeDigestMethod.java index efb7300ad..d5b5ce336 100644 --- a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SMimeDigestMethod.java +++ b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SMimeDigestMethod.java @@ -31,17 +31,13 @@ public enum SMimeDigestMethod { // md5("md5", "MD5"), // rsa_md5("rsa-md5", "MD5"), - sha1("sha1", "SHA1withRSA", "SHA-1", OIWObjectIdentifiers.idSHA1, DigestMethod.SHA1, TransportProfile.AS2_1_0), - sha_1("sha-1", "SHA1withRSA", "SHA-1", OIWObjectIdentifiers.idSHA1, DigestMethod.SHA1, TransportProfile.AS2_1_0), - rsa_sha1("rsa-sha1", "SHA1withRSA", "SHA-1", OIWObjectIdentifiers.idSHA1, DigestMethod.SHA1, TransportProfile.AS2_1_0), + sha1(new String[]{"sha1", "sha-1", "rsa-sha1"}, "SHA1withRSA", "SHA-1", OIWObjectIdentifiers.idSHA1, DigestMethod.SHA1, TransportProfile.AS2_1_0), // sha256("sha256", "SHA256withRSA", "SHA-256", NISTObjectIdentifiers.id_sha256, DigestMethod.SHA256, null), // sha384("sha384", "SHA-384"), - sha512("sha512", "SHA512withRSA", "SHA-512", NISTObjectIdentifiers.id_sha512, DigestMethod.SHA512, - TransportProfile.of("busdox-transport-as2-ver1p0r1")), - sha_512("sha-512", "SHA512withRSA", "SHA-512", NISTObjectIdentifiers.id_sha512, DigestMethod.SHA512, + sha512(new String[]{"sha512", "sha-512"}, "SHA512withRSA", "SHA-512", NISTObjectIdentifiers.id_sha512, DigestMethod.SHA512, TransportProfile.of("busdox-transport-as2-ver1p0r1")); - private final String identifier; + private final String[] identifier; private final String method; @@ -53,7 +49,7 @@ public enum SMimeDigestMethod { private final TransportProfile transportProfile; - SMimeDigestMethod(String identifier, String method, String algorithm, ASN1ObjectIdentifier oid, + SMimeDigestMethod(String[] identifier, String method, String algorithm, ASN1ObjectIdentifier oid, DigestMethod digestMethod, TransportProfile transportProfile) { this.identifier = identifier; this.method = method; @@ -64,7 +60,7 @@ public enum SMimeDigestMethod { } public String getIdentifier() { - return identifier; + return identifier[0]; } public String getMethod() { @@ -88,9 +84,12 @@ public TransportProfile getTransportProfile() { } public static SMimeDigestMethod findByIdentifier(String identifier) { + String provided = String.valueOf(identifier).toLowerCase(); + for (SMimeDigestMethod digestMethod : values()) - if (digestMethod.getIdentifier().equals(identifier.toLowerCase())) - return digestMethod; + for (String ident : digestMethod.identifier) + if (ident.equals(provided)) + return digestMethod; throw new IllegalArgumentException(String.format("Digest method '%s' not known.", identifier)); } @@ -103,5 +102,13 @@ public static SMimeDigestMethod findByTransportProfile(TransportProfile transpor throw new IllegalArgumentException(String.format( "Digest method for transport profile '%s' not known.", transportProfile)); } + + public static SMimeDigestMethod findByDigestMethod(DigestMethod digestMethod) { + for (SMimeDigestMethod method : values()) + if (method.digestMethod.equals(digestMethod)) + return method; + + throw new IllegalArgumentException(String.format("Digest method '%s' not known.", digestMethod)); + } } diff --git a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SignedMimeMessage.java b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SignedMimeMessage.java index 401205c62..457751a78 100644 --- a/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SignedMimeMessage.java +++ b/oxalis-as2/src/main/java/no/difi/oxalis/as2/util/SignedMimeMessage.java @@ -107,10 +107,10 @@ public X509Certificate getSignersX509Certificate() { return signersX509Certificate; } - public Mic calculateMic(String algorithmName) { + public Mic calculateMic(SMimeDigestMethod algorithm) { try { - MessageDigest messageDigest = BCHelper.getMessageDigest(algorithmName); + MessageDigest messageDigest = BCHelper.getMessageDigest(algorithm.getAlgorithm()); MimeMultipart mimeMultipart = (MimeMultipart) mimeMessage.getContent(); @@ -123,10 +123,10 @@ public Mic calculateMic(String algorithmName) { messageDigest.update(content); String digestAsString = new String(Base64.encode(messageDigest.digest())); - return new Mic(digestAsString, algorithmName); + return new Mic(digestAsString, algorithm); } catch (NoSuchAlgorithmException e) { - throw new IllegalStateException(algorithmName + " not found", e); + throw new IllegalStateException(algorithm.getIdentifier() + " not found", e); } catch (IOException e) { throw new IllegalStateException("Unable to read data from digest input. " + e.getMessage(), e); } catch (MessagingException e) { diff --git a/oxalis-as2/src/test/java/no/difi/oxalis/as2/inbound/As2InboundHandlerIT.java b/oxalis-as2/src/test/java/no/difi/oxalis/as2/inbound/As2InboundHandlerIT.java index 89ecd8f07..5c603279f 100644 --- a/oxalis-as2/src/test/java/no/difi/oxalis/as2/inbound/As2InboundHandlerIT.java +++ b/oxalis-as2/src/test/java/no/difi/oxalis/as2/inbound/As2InboundHandlerIT.java @@ -64,7 +64,6 @@ * @author steinar * @author thore */ -@Test(groups = {"integration"}) @Guice(modules = {GuiceModuleLoader.class}) public class As2InboundHandlerIT { diff --git a/oxalis-as2/src/test/java/no/difi/oxalis/as2/model/MicTest.java b/oxalis-as2/src/test/java/no/difi/oxalis/as2/model/MicTest.java index 665861086..4dd07c947 100644 --- a/oxalis-as2/src/test/java/no/difi/oxalis/as2/model/MicTest.java +++ b/oxalis-as2/src/test/java/no/difi/oxalis/as2/model/MicTest.java @@ -22,6 +22,7 @@ package no.difi.oxalis.as2.model; +import no.difi.oxalis.as2.util.SMimeDigestMethod; import org.testng.annotations.Test; import static org.testng.Assert.assertNotNull; @@ -34,7 +35,7 @@ public class MicTest { @Test public void testToString() throws Exception { - Mic mic = new Mic("eeWNkOTx7yJYr2EW8CR85I7QJQY=", "sha1"); + Mic mic = new Mic("eeWNkOTx7yJYr2EW8CR85I7QJQY=", SMimeDigestMethod.sha1); assertNotNull(mic); } diff --git a/oxalis-as2/src/test/java/no/difi/oxalis/as2/util/SMimeMessageFactoryTest.java b/oxalis-as2/src/test/java/no/difi/oxalis/as2/util/SMimeMessageFactoryTest.java index f257052b3..7b9b2aae6 100644 --- a/oxalis-as2/src/test/java/no/difi/oxalis/as2/util/SMimeMessageFactoryTest.java +++ b/oxalis-as2/src/test/java/no/difi/oxalis/as2/util/SMimeMessageFactoryTest.java @@ -46,7 +46,6 @@ * Date: 08.10.13 * Time: 11:34 */ -@Test(groups = "integration") @Guice(modules = GuiceModuleLoader.class) public class SMimeMessageFactoryTest { @@ -110,20 +109,5 @@ public void inspectSignedMessage() throws Exception { assertTrue(sw.toString().contains(" fakeHome.resolve("fake-oxalis.conf").toFile())); oxalisHomeDirectory.detect(); } - - @Test(groups = {"integration"}) - public void makeSureWeHaveWorkingOxalisHomeDirectory() { - File file = oxalisHomeDirectory.detect(); - assertTrue(file.exists(), "OXALIS_HOME was not found"); - assertTrue(file.isDirectory(), "OXALIS_HOME was not a directory"); - assertTrue(file.canRead(), "OXALIS_HOME was not readable"); - } } diff --git a/oxalis-integration-test/pom.xml b/oxalis-integration-test/pom.xml deleted file mode 100644 index 965495f07..000000000 --- a/oxalis-integration-test/pom.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - 4.0.0 - - - no.difi.oxalis - oxalis - 4.0.0-RC3-SNAPSHOT - - - oxalis-integration-test - jar - - Oxalis :: Integration test - - Oxalis integration test. - - Compiles and packages everything, after which the web container - is started in the pre-integration-test phase, the .war file is deployed - and the tests are executed in the integration-test phase. - After the tests have been executed, the web container is stopped in - the post-integration-test phase. - - The reason for using failsafe is the fact that Surefire would fail the build - in the integration-test phase, without taking down the server in the - post-integration-test phase. - - This implementation uses Tomcat, but you may change this to your liking. - - See http://cargo.codehaus.org/Maven2+plugin for more information. - - https://github.com/difi/oxalis - - - https://github.com/difi/oxalis/issues - GitHub Issues - - - - Norwegian Agency for Public Management and eGovernment (Difi) - http://www.difi.no/ - - - - 18080 - - - - - - - no.difi.oxalis - oxalis-as2 - - - - no.difi.oxalis - oxalis-inbound - - classes - - - - no.difi.oxalis - oxalis-outbound - - - no.difi.oxalis - oxalis-statistics - - - no.difi.oxalis - oxalis-test-impl - test - - - - - org.apache.httpcomponents - httpclient - - - - - org.slf4j - jcl-over-slf4j - - - ch.qos.logback - logback-classic - - - - - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - - - org.codehaus.cargo - cargo-maven2-plugin - 1.4.18 - - - - - ${servlet.port} - - - - - - no.difi.oxalis - oxalis-inbound - war - - - oxalis - - - - - - - - - - - - - - - - - - - - it-test - - - - - org.codehaus.cargo - cargo-maven2-plugin - - - tomcat9x - - http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M15/bin/apache-tomcat-9.0.0.M15.zip - - - - - - ${servlet.port} - http - false - medium - - - - - - - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - perform-it - - integration-test - verify - - - - - servlet.port - ${servlet.port} - - - none,difi,manual - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - - - start-cargo - pre-integration-test - - start - - - - - medium - - - - - - - stop-cargo - post-integration-test - - stop - - - - - - - - - diff --git a/oxalis-integration-test/src/test/java/eu/peppol/outbound/HttpPostTestIT.java b/oxalis-integration-test/src/test/java/eu/peppol/outbound/HttpPostTestIT.java deleted file mode 100644 index af812a468..000000000 --- a/oxalis-integration-test/src/test/java/eu/peppol/outbound/HttpPostTestIT.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package eu.peppol.outbound; - -import com.google.inject.Inject; -import no.difi.oxalis.as2.code.As2Header; -import no.difi.oxalis.as2.model.As2DispositionNotificationOptions; -import no.difi.oxalis.as2.util.*; -import no.difi.oxalis.commons.guice.GuiceModuleLoader; -import no.difi.oxalis.commons.security.CertificateUtils; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.conn.HttpHostConnectException; -import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.entity.ContentType; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.Guice; -import org.testng.annotations.Test; - -import javax.activation.MimeType; -import javax.mail.internet.MimeMessage; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.security.PrivateKey; -import java.security.cert.X509Certificate; -import java.util.Date; -import java.util.Enumeration; -import java.util.UUID; - -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.fail; - -/** - * Sample brute force document sender, implemented by hand coding everything. - *

- * Requires the Oxalis server to be running. - * - * @author steinar - * Date: 27.10.13 - * Time: 13:46 - */ -@Guice(modules = {GuiceModuleLoader.class}) -public class HttpPostTestIT { - - public static final String OXALIS_AS2_URL = IntegrationTestConstant.OXALIS_AS2_URL; - - public static final String PEPPOL_BIS_INVOICE_SBDH_XML = "peppol-bis-invoice-sbdh.xml"; - - public static final Logger log = LoggerFactory.getLogger(HttpPostTestIT.class); - - @Inject - private PrivateKey privateKey; - - @Inject - private X509Certificate certificate; - - @Test - public void testPost() throws Exception { - InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream(PEPPOL_BIS_INVOICE_SBDH_XML); - assertNotNull(resourceAsStream, "Unable to locate resource " + PEPPOL_BIS_INVOICE_SBDH_XML + " in class path"); - - SMimeMessageFactory SMimeMessageFactory = new SMimeMessageFactory(privateKey, certificate); - MimeMessage signedMimeMessage = SMimeMessageFactory - .createSignedMimeMessage(resourceAsStream, new MimeType("application/xml"), SMimeDigestMethod.sha1); - - signedMimeMessage.writeTo(System.out); - - CloseableHttpClient httpClient = createCloseableHttpClient(); - - HttpPost httpPost = new HttpPost(OXALIS_AS2_URL); - - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - signedMimeMessage.writeTo(byteArrayOutputStream); - - httpPost.addHeader(As2Header.AS2_FROM, CertificateUtils.extractCommonName(certificate)); - httpPost.addHeader(As2Header.AS2_TO, "AS2-TEST"); - httpPost.addHeader(As2Header.DISPOSITION_NOTIFICATION_OPTIONS, - As2DispositionNotificationOptions.getDefault(SMimeDigestMethod.sha1).toString()); - httpPost.addHeader(As2Header.AS2_VERSION, As2Header.VERSION); - httpPost.addHeader(As2Header.SUBJECT, "AS2 TEST MESSAGE"); - httpPost.addHeader(As2Header.MESSAGE_ID, UUID.randomUUID().toString()); - httpPost.addHeader(As2Header.DATE, As2DateUtil.RFC822.format(new Date())); - - // Inserts the S/MIME message to be posted - httpPost.setEntity(new ByteArrayEntity(byteArrayOutputStream.toByteArray(), ContentType.create("multipart/signed"))); - - CloseableHttpResponse postResponse = null; // EXECUTE !!!! - try { - postResponse = httpClient.execute(httpPost); - } catch (HttpHostConnectException e) { - fail("The Oxalis server does not seem to be running at " + OXALIS_AS2_URL); - } - - HttpEntity entity = postResponse.getEntity(); // Any results? - Assert.assertEquals(postResponse.getStatusLine().getStatusCode(), 200); - String contents = EntityUtils.toString(entity); - - assertNotNull(contents); - if (log.isDebugEnabled()) { - log.debug("Received: \n"); - Header[] allHeaders = postResponse.getAllHeaders(); - for (Header header : allHeaders) { - log.debug("" + header.getName() + ": " + header.getValue()); - } - log.debug("\n" + contents); - log.debug("---------------------------"); - } - - try { - - MimeMessage mimeMessage = MimeMessageHelper.parseMultipart(contents); - System.out.println("Received multipart MDN response decoded as type : " + mimeMessage.getContentType()); - - // Make sure we set content type header for the multipart message (should be multipart/signed) - String contentTypeFromHttpResponse = postResponse.getHeaders("Content-Type")[0].getValue(); // Oxalis always return only one - mimeMessage.setHeader("Content-Type", contentTypeFromHttpResponse); - Enumeration headerlines = mimeMessage.getAllHeaderLines(); - while (headerlines.hasMoreElements()) { - // Content-Type: multipart/signed; - // protocol="application/pkcs7-signature"; - // micalg=sha-1; - // boundary="----=_Part_3_520186210.1399207766925" - System.out.println("HeaderLine : " + headerlines.nextElement()); - } - - MdnMimeMessageInspector mdnMimeMessageInspector = new MdnMimeMessageInspector(mimeMessage); - String msg = mdnMimeMessageInspector.getPlainTextPartAsText(); - System.out.println(msg); - - } finally { - postResponse.close(); - } - } - - private CloseableHttpClient createCloseableHttpClient() { - // not using PoolingHttpClientConnectionManager - just create a new httpclient - try { - CloseableHttpClient httpclient = HttpClients.custom().build(); - return httpclient; - } catch (Exception ex) { - throw new IllegalStateException("Unable to create TLS based SSLContext", ex); - } - } - -} diff --git a/oxalis-integration-test/src/test/java/eu/peppol/outbound/IntegrationTestConstant.java b/oxalis-integration-test/src/test/java/eu/peppol/outbound/IntegrationTestConstant.java deleted file mode 100644 index f107ece96..000000000 --- a/oxalis-integration-test/src/test/java/eu/peppol/outbound/IntegrationTestConstant.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package eu.peppol.outbound; - -public class IntegrationTestConstant { - - public static final String OXALIS_AS2_URL = "http://localhost:18080/oxalis/as2"; - -} diff --git a/oxalis-integration-test/src/test/java/eu/peppol/outbound/SendSampleInvoiceTestIT.java b/oxalis-integration-test/src/test/java/eu/peppol/outbound/SendSampleInvoiceTestIT.java deleted file mode 100644 index 4a881bbbd..000000000 --- a/oxalis-integration-test/src/test/java/eu/peppol/outbound/SendSampleInvoiceTestIT.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package eu.peppol.outbound; - -import no.difi.oxalis.api.lang.OxalisException; -import no.difi.oxalis.api.lang.OxalisTransmissionException; -import no.difi.oxalis.api.outbound.TransmissionRequest; -import no.difi.oxalis.api.outbound.TransmissionResponse; -import no.difi.oxalis.api.outbound.Transmitter; -import no.difi.oxalis.commons.config.ConfigModule; -import no.difi.oxalis.commons.filesystem.FileSystemModule; -import no.difi.oxalis.commons.security.CertificateModule; -import no.difi.oxalis.outbound.OxalisOutboundComponent; -import no.difi.oxalis.outbound.transmission.TransmissionRequestBuilder; -import no.difi.oxalis.test.identifier.WellKnownParticipant; -import no.difi.vefa.peppol.common.model.Endpoint; -import no.difi.vefa.peppol.common.model.TransportProfile; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Guice; -import org.testng.annotations.Test; - -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URI; -import java.security.cert.X509Certificate; -import java.text.SimpleDateFormat; -import java.util.Locale; - -import static org.testng.Assert.*; - -/** - * @author steinar - * @author thore - */ -@Guice(modules = {CertificateModule.class, ConfigModule.class, FileSystemModule.class}) -public class SendSampleInvoiceTestIT { - - public static final Logger log = LoggerFactory.getLogger(SendSampleInvoiceTestIT.class); - - public static final String PEPPOL_BIS_INVOICE_SBDH_XML = "peppol-bis-invoice-sbdh.xml"; - - public static final String EHF_WITH_SBDH = "BII04_T10_EHF-v1.5_invoice_with_sbdh.xml"; - - private OxalisOutboundComponent oxalisOutboundComponent; - - private TransmissionRequestBuilder builder; - - private X509Certificate certificate; - - @BeforeMethod - public void setUp() { - oxalisOutboundComponent = new OxalisOutboundComponent(); - builder = oxalisOutboundComponent.getTransmissionRequestBuilder(); - builder.setTransmissionBuilderOverride(true); - certificate = oxalisOutboundComponent.getInjector().getInstance(X509Certificate.class); - } - - /** - * This test was written to recreate the SSL problems experienced by ESPAP in order to supply a more informative - * exception. - * - * @throws MalformedURLException - * @throws OxalisTransmissionException - */ - @Test(groups = {"manual"}) - public void sendToEspapWithSSLProblems() throws MalformedURLException, OxalisException { - InputStream is = getClass().getClassLoader().getResourceAsStream(PEPPOL_BIS_INVOICE_SBDH_XML); - assertNotNull(is, "Unable to locate peppol-bis-invoice-sbdh.sml in class path"); - - assertNotNull(oxalisOutboundComponent); - assertNotNull(builder); - - // Build the payload - builder.payLoad(is); - - // Overrides the end point address, thus preventing a SMP lookup - builder.overrideAs2Endpoint(Endpoint.of( - TransportProfile.AS2_1_0, URI.create("https://ap1.espap.pt/oxalis/as2"), null)); - - // Builds our transmission request - TransmissionRequest transmissionRequest = builder.build(); - - // Gets a transmitter, which will be used to execute our transmission request - Transmitter transmitter = oxalisOutboundComponent.getTransmitter(); - - // Transmits our transmission request - transmitter.transmit(transmissionRequest); - } - - @Test - public void sendSingleInvoiceToLocalEndPointUsingAS2() throws Exception { - - InputStream is = getClass().getClassLoader().getResourceAsStream(PEPPOL_BIS_INVOICE_SBDH_XML); - assertNotNull(is, "Unable to locate peppol-bis-invoice-sbdh.sml in class path"); - - assertNotNull(oxalisOutboundComponent); - assertNotNull(builder); - - // Build the payload - builder.payLoad(is); - - // Overrides the end point address, thus preventing a SMP lookup - builder.overrideAs2Endpoint(Endpoint.of( - TransportProfile.AS2_1_0, URI.create(IntegrationTestConstant.OXALIS_AS2_URL), certificate)); - - // Builds our transmission request - TransmissionRequest transmissionRequest = builder.build(); - - // Gets a transmitter, which will be used to execute our transmission request - Transmitter transmitter = oxalisOutboundComponent.getTransmitter(); - - // Transmits our transmission request - TransmissionResponse transmissionResponse = transmitter.transmit(transmissionRequest); - assertNotNull(transmissionResponse); - assertNotNull(transmissionResponse.getTransmissionIdentifier()); - assertNotNull(transmissionResponse.getHeader()); - assertEquals(transmissionResponse.getHeader().getReceiver(), WellKnownParticipant.DIFI_TEST); - assertEquals(transmissionResponse.getEndpoint().getAddress().toString(), - IntegrationTestConstant.OXALIS_AS2_URL); - assertEquals(transmissionResponse.getProtocol(), TransportProfile.AS2_1_0); - } - - - /** - * Verify that we can deliver AS2 message with pre-wrapped SBDH. - */ - @Test() - public void sendSingleInvoiceWithSbdhToLocalEndPointUsingAS2() throws Exception { - - InputStream is = SendSampleInvoiceTestIT.class.getClassLoader().getResourceAsStream(EHF_WITH_SBDH); - assertNotNull(is, "Unable to locate peppol-bis-invoice-sbdh.sml in class path"); - - assertNotNull(oxalisOutboundComponent); - assertNotNull(builder); - - // Build the payload - builder.payLoad(is); - - // Overrides the end point address, thus preventing a SMP lookup - builder.overrideAs2Endpoint(Endpoint.of( - TransportProfile.AS2_1_0, URI.create(IntegrationTestConstant.OXALIS_AS2_URL), certificate)); - - // Builds our transmission request - TransmissionRequest transmissionRequest = builder.build(); - - // Gets a transmitter, which will be used to execute our transmission request - Transmitter transmitter = oxalisOutboundComponent.getTransmitter(); - - // Transmits our transmission request - TransmissionResponse transmissionResponse = transmitter.transmit(transmissionRequest); - assertNotNull(transmissionResponse); - assertNotNull(transmissionResponse.getTransmissionIdentifier()); - assertNotNull(transmissionResponse.getHeader()); - assertEquals(transmissionResponse.getHeader().getReceiver(), WellKnownParticipant.DIFI_TEST); - assertEquals(transmissionResponse.getEndpoint().getAddress(), - URI.create(IntegrationTestConstant.OXALIS_AS2_URL)); - assertEquals(transmissionResponse.getProtocol(), TransportProfile.AS2_1_0); - - assertNotEquals(transmissionResponse.getHeader().getIdentifier(), - transmissionResponse.getTransmissionIdentifier().getIdentifier()); - - // Make sure we got the correct CreationDateAndTime from the SBDH : "2014-11-01T16:32:48.128+01:00" - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH); - assertEquals(sdf.format(transmissionResponse.getHeader().getCreationTimestamp()), "2014-11-01 16:32:48"); - } - - - /** - * Verifies that we can run several transmission tasks in parallell. - * - * @throws Exception - */ - @Test - public void sendWithMultipleThreads() throws Exception { - - final int MAX_THREADS = 5; - - Thread[] threads = new Thread[MAX_THREADS]; - SenderTask[] senderTasks = new SenderTask[MAX_THREADS]; - - for (int i = 0; i < MAX_THREADS; i++) { - senderTasks[i] = new SenderTask(i, certificate); - threads[i] = new Thread(senderTasks[i], "Thread " + i); - threads[i].start(); - } - - Thread.sleep(20 * 1000); // Wait for 10 seconds to allow worker threads to complete - - for (int i = 0; i < MAX_THREADS; i++) { - boolean alive = threads[i].isAlive(); - threads[i].isInterrupted(); - threads[i].join(1000); // Allows transmissions to complete before we exit - - boolean actual = senderTasks[i].hasCompletedTransmission(); - - assertTrue(actual, "SenderTask " + i + " has not completed"); - } - - long accumulatedElapsedTime = 0; - for (int i = 0; i < MAX_THREADS; i++) { - accumulatedElapsedTime += senderTasks[i].getElapsedTime(); - } - - long averageTime = accumulatedElapsedTime / MAX_THREADS; - log.debug("Average transmission time " + averageTime + "ms"); - assertTrue(averageTime < 8000, "Average transmission time was " + averageTime + - " should be less than 2000ms. Do you have a slow machine?"); - } - - - /** - * Class suitable for running several transmission threads in paralell. - */ - static class SenderTask implements Runnable { - - private final int threadNumber; - - private boolean transmissionCompleted = false; - - private long elapsedTime; - - private X509Certificate certificate; - - private OxalisOutboundComponent oxalisOutboundComponent; - - public SenderTask(int threadNumber, X509Certificate certificate) { - this.threadNumber = threadNumber; - this.certificate = certificate; - - oxalisOutboundComponent = new OxalisOutboundComponent(); - } - - public long getElapsedTime() { - return elapsedTime; - } - - public boolean hasCompletedTransmission() { - return transmissionCompleted; - - } - - @Override - public void run() { - try { - - log.debug(threadNumber + " fetching resourcestream"); - - InputStream is = SendSampleInvoiceTestIT.class.getClassLoader().getResourceAsStream(EHF_WITH_SBDH); - assertNotNull(is, "Unable to locate peppol-bis-invoice-sbdh.sml in class path"); - - TransmissionRequestBuilder builder = oxalisOutboundComponent.getTransmissionRequestBuilder(); - assertNotNull(builder); - - log.debug(threadNumber + " loading inputdata.."); - // Build the payload - builder.payLoad(is); - - // Overrides the end point address, thus preventing a SMP lookup - builder.overrideAs2Endpoint(Endpoint.of( - TransportProfile.AS2_1_0, URI.create(IntegrationTestConstant.OXALIS_AS2_URL), certificate)); - - log.debug(threadNumber + " building transmission request..."); - // Builds our transmission request - TransmissionRequest transmissionRequest = builder.build(); - - log.debug(threadNumber + " retrieving a transmitter...."); - // Gets a transmitter, which will be used to execute our transmission request - Transmitter transmitter = oxalisOutboundComponent.getTransmitter(); - - log.debug(threadNumber + " performing transmission ..."); - long transmissionStart = System.currentTimeMillis(); - // Transmits our transmission request - TransmissionResponse transmissionResponse = null; - try { - transmissionResponse = transmitter.transmit(transmissionRequest); - } catch (OxalisTransmissionException e) { - throw new IllegalStateException(e); - } - long transmissionFinished = System.currentTimeMillis(); - - // Calculates the elapsed time - elapsedTime = transmissionFinished - transmissionStart; - // Report that transmission was completed OK - transmissionCompleted = true; - - assertNotNull(transmissionResponse); - assertNotNull(transmissionResponse.getTransmissionIdentifier()); - assertNotNull(transmissionResponse.getHeader()); - assertEquals(transmissionResponse.getHeader().getReceiver(), WellKnownParticipant.DIFI_TEST); - assertEquals(transmissionResponse.getEndpoint().getAddress().toString(), - IntegrationTestConstant.OXALIS_AS2_URL); - assertEquals(transmissionResponse.getProtocol(), TransportProfile.AS2_1_0); - - assertNotEquals(transmissionResponse.getHeader().getIdentifier().getIdentifier(), - transmissionResponse.getTransmissionIdentifier().getIdentifier()); - - // Make sure we got the correct CreationDateAndTime from the SBDH : "2014-11-01T16:32:48.128+01:00" - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); - assertEquals(sdf.format(transmissionResponse.getHeader().getCreationTimestamp()), - "2014-11-01 16:32:48"); - log.debug(threadNumber + " transmission complete..."); - - } catch (OxalisException e) { - throw new IllegalStateException(e.getMessage(), e); - } - } - } -} \ No newline at end of file diff --git a/oxalis-integration-test/src/test/java/eu/peppol/outbound/transmission/TransmissionTestITModule.java b/oxalis-integration-test/src/test/java/eu/peppol/outbound/transmission/TransmissionTestITModule.java deleted file mode 100644 index 3e58bfcd5..000000000 --- a/oxalis-integration-test/src/test/java/eu/peppol/outbound/transmission/TransmissionTestITModule.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package eu.peppol.outbound.transmission; - -import com.google.inject.AbstractModule; -import com.google.inject.Provides; -import com.google.inject.name.Named; -import eu.peppol.outbound.IntegrationTestConstant; -import no.difi.oxalis.outbound.transmission.TransmissionModule; -import no.difi.oxalis.persistence.guice.DataSourceModule; -import no.difi.oxalis.statistics.guice.RawStatisticsRepositoryModule; -import no.difi.oxalis.api.lookup.LookupService; -import no.difi.oxalis.commons.config.ConfigModule; -import no.difi.oxalis.commons.filesystem.FileSystemModule; -import org.mockito.Mockito; - -import java.io.InputStream; - -import static org.testng.Assert.assertNotNull; - -/** - * @author steinar - * @author thore - */ -public class TransmissionTestITModule extends AbstractModule { - - public static final String OUR_LOCAL_OXALIS_URL = IntegrationTestConstant.OXALIS_AS2_URL; - - @Override - protected void configure() { - binder().install(new ConfigModule()); - binder().install(new FileSystemModule()); - - binder().install(new DataSourceModule()); - binder().install(new RawStatisticsRepositoryModule()); - binder().install(new TransmissionModule()); - } - - @Provides - @Named("sample-ehf-invoice-no-sbdh") - public InputStream getSampleEhfInvoice() { - InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("EHF-Invoice-2.0.8-no-sbdh.xml"); - assertNotNull(resourceAsStream, "Unable to load " + "EHF-Invoice-2.0.8-no-sbdh.xml" + " from class path"); - return resourceAsStream; - } - - @Provides - @Named("sample-xml-with-sbdh") - public InputStream getSampleXmlInputStream() { - InputStream resourceAsStream = getClass().getClassLoader() - .getResourceAsStream("peppol-bis-invoice-sbdh.xml"); - assertNotNull(resourceAsStream, "Unable to load " + "peppol-bis-invoice-sbdh.xml" + " from class path"); - return resourceAsStream; - } - - @Provides - @Named("invoice-to-itsligo") - public InputStream sampleInvoiceWithSbdhForItSligo() { - InputStream resourceAsStream = getClass().getClassLoader() - .getResourceAsStream("peppol-bis-invoice-sbdh-itsligo.xml"); - assertNotNull(resourceAsStream, "Unable to load " + "peppol-bis-invoice-sbdh-itsligo.xml" + " from class path"); - return resourceAsStream; - } - - @Provides - public LookupService getFakeLookupService() { - return Mockito.mock(LookupService.class); - } -} diff --git a/oxalis-integration-test/src/test/java/no/difi/oxalis/as2/outbound/As2MessageSenderTestIT.java b/oxalis-integration-test/src/test/java/no/difi/oxalis/as2/outbound/As2MessageSenderTestIT.java deleted file mode 100644 index 96234b588..000000000 --- a/oxalis-integration-test/src/test/java/no/difi/oxalis/as2/outbound/As2MessageSenderTestIT.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package no.difi.oxalis.as2.outbound; - -import brave.Tracer; -import com.google.inject.Inject; -import com.google.inject.name.Named; -import eu.peppol.outbound.transmission.TransmissionTestITModule; -import no.difi.oxalis.api.lookup.LookupService; -import no.difi.oxalis.api.outbound.TransmissionRequest; -import no.difi.oxalis.api.outbound.TransmissionResponse; -import no.difi.oxalis.commons.guice.GuiceModuleLoader; -import no.difi.oxalis.test.security.CertificateMock; -import no.difi.vefa.peppol.common.model.Endpoint; -import no.difi.vefa.peppol.common.model.Header; -import no.difi.vefa.peppol.common.model.TransportProfile; -import org.mockito.Mockito; -import org.testng.annotations.Guice; -import org.testng.annotations.Test; - -import java.io.InputStream; -import java.net.URI; - -import static org.testng.Assert.assertNotNull; - -/** - * @author steinar - * Date: 29.10.13 - * Time: 11:35 - */ -@Test(groups = {"integration"}) -@Guice(modules = {GuiceModuleLoader.class}) -public class As2MessageSenderTestIT { - - @Inject - @Named("sample-xml-with-sbdh") - InputStream inputStream; - - @Inject - @Named("invoice-to-itsligo") - InputStream itSligoInputStream; - - @Inject - LookupService fakeLookupService; - - @Inject - As2MessageSender as2MessageSender; - - @Inject - private Tracer tracer; - - /** - * Verifies that the Google Guice injection of @Named injections works as expected - */ - @Test - public void testInjection() throws Exception { - assertNotNull(inputStream); - } - - /** - * Requires our AS2 server to be up and running at https://localhost:8080/oxalis/as2 - */ - @Test(groups = {"integration"}) - public void sendSampleMessageAndVerify() throws Exception { - Mockito.reset(fakeLookupService); - Mockito.when(fakeLookupService.lookup(Mockito.any(Header.class))) - .thenReturn(Endpoint.of( - TransportProfile.AS2_1_0, - URI.create(TransmissionTestITModule.OUR_LOCAL_OXALIS_URL), - CertificateMock.withCN("APP_1000000006"))); - - Endpoint endpoint = fakeLookupService.lookup(Header.newInstance()); - - TransmissionResponse transmissionResponse = as2MessageSender.send(new TransmissionRequest() { - @Override - public Endpoint getEndpoint() { - return endpoint; - } - - @Override - public Header getHeader() { - return null; - } - - @Override - public InputStream getPayload() { - return inputStream; - } - }, tracer.newTrace().name("unit-test")); - - assertNotNull(transmissionResponse.getReceipts().get(0), "Missing native evidence in sendResult"); - } - - - @Test(enabled = false) - public void sendReallyLargeFile() throws Exception { - Mockito.reset(fakeLookupService); - Mockito.when(fakeLookupService.lookup(Mockito.any(Header.class))) - .thenReturn(Endpoint.of( - TransportProfile.AS2_1_0, - URI.create(TransmissionTestITModule.OUR_LOCAL_OXALIS_URL), - CertificateMock.withCN("APP_1000000006"))); - - Endpoint endpoint = fakeLookupService.lookup(Header.newInstance()); - - // TODO: generate a really large file and transmit it. - as2MessageSender.send(new TransmissionRequest() { - @Override - public Endpoint getEndpoint() { - return endpoint; - } - - @Override - public Header getHeader() { - return null; - } - - @Override - public InputStream getPayload() { - return inputStream; - } - }, tracer.newTrace().name("unit-test")); - } -} diff --git a/oxalis-integration-test/src/test/resources/BII04_T10_EHF-v1.5_invoice_with_sbdh.xml b/oxalis-integration-test/src/test/resources/BII04_T10_EHF-v1.5_invoice_with_sbdh.xml deleted file mode 100644 index 877121ede..000000000 --- a/oxalis-integration-test/src/test/resources/BII04_T10_EHF-v1.5_invoice_with_sbdh.xml +++ /dev/null @@ -1,533 +0,0 @@ - - - - - 1.0 - - 9908:810418052 - - - 9908:810418052 - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - 2.0 - 7eed9a1-d9a1-d9a1-d9a1-7eed9a1 - Invoice - 2014-11-01T16:32:48.128+01:00 - - © - - DOCUMENTID - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0#urn:www.difi.no:ehf:faktura:ver1::2.0 - - - - PROCESSID - urn:www.cenbii.eu:profile:bii05:ver1.0 - - - - - 2.0 - - urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0#urn:www.difi.no:ehf:faktura:ver1 - - urn:www.cenbii.eu:profile:bii05:ver1.0 - TOSL108 - 2009-12-15 - 380 - Ordered in our booth at the convention. - 2009-11-30 - EUR - Project cost code 123 - - 2009-11-01 - 2009-11-30 - - - 123 - - - Contract321 - Framework agreement - - - Doc1 - Timesheet - - - http://www.suppliersite.eu/sheet001.html - - - - - Doc2 - Drawing - - - JVBERi0xLjQNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhuYi1OTykgL091dHB1dEludGVudHNbPDwvVHlwZS9PdXRwdXRJbnRlbnQvUy9HVFNfUERGQTEvT3V0cHV0Q29uZGl0aW9uSWRlbnRpZmllcihzUkdCKSAvUmVnaXN0cnlOYW1lKGh0dHA6Ly93d3cuY29sb3Iub3JnKSAvSW5mbyhDcmVhdG9yOiBIUCAgICAgTWFudWZhY3R1cmVyOklFQyAgICBNb2RlbDpzUkdCKSAvRGVzdE91dHB1dFByb2ZpbGUgMTEgMCBSPj5dIC9NZXRhZGF0YSAxMiAwIFI+Pg0KZW5kb2JqDQoyIDAgb2JqDQo8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1sgMyAwIFJdID4+DQplbmRvYmoNCjMgMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0YxIDUgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAwIDAgNTk1LjMyIDg0MS45Ml0gL0NvbnRlbnRzIDQgMCBSPj4NCmVuZG9iag0KNCAwIG9iag0KPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMjA+Pg0Kc3RyZWFtDQp4nHMK4eXSdzNUMDTUMzBRCEnj5TJUMABCQwVzAz0LIxMFczMDPTMLhZBcXi4DhXQQ4c7LFa3hqBCgqWus4aKpa6LhpmlorKGQkg9iJ5eCOLkgZmpeiZ5mrEKIFy+XK9AWpxCE2YYmFnpGRshmR2soIKkFAJQwHV8NCmVuZHN0cmVhbQ0KZW5kb2JqDQo1IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9OYW1lL0YxL0Jhc2VGb250L0FCQ0RFRStDYWxpYnJpL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVzY3JpcHRvciA2IDAgUi9GaXJzdENoYXIgMzIvTGFzdENoYXIgMTE3L1dpZHRocyA4IDAgUj4+DQplbmRvYmoNCjYgMCBvYmoNCjw8L1R5cGUvRm9udERlc2Ny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OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IjMuMS03MDEiPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiICB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIj4KPHhtcFJpZ2h0czpNYXJrZWQ+VHJ1ZTwveG1wUmlnaHRzOk1hcmtlZD48L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L3JkZjpSREY+PC94OnhtcG1ldGE+PD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFtDQplbmRvYmoNCjExIDAgb2JqDQo8PC9OIDMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNTkzPj4NCnN0cmVhbQ0KeJydlndUVNcWh8+9d3qhzTB0GHqvUgYQ6R2kV1EYZgYYygDDDNgLIioQUUSkKYIEBQwYDUViRRQLAVEBe0CCgBKDUWyoZEbWSnx5ee/l5ffHPd/aZ+9z99l737UuACQvPy4vHZYCII0n4Ad7utAjo6Lp2H4AAzzAAHMAmKysDP8Qj1Agkre7Kz1L5AT+Ra+HASRebxl7BdLp4P+TNCuDLwAAChTxEjYniyXiPBGn5ggyxPZZEVPjU8QMo8TMFyUoYnkxJy6y0WefRXYSMzuNxxaxOOcMdhpbzD0i3pEt5IgY8RNxfjaXkyPi2yLWShWmcUX8VhybxmFmAYAiie0CDitJxGYiJvFDg11FvBQAHCnxC47/ggWc1QLxpVzTM9bwuYlJAroeS59ubmvLoHtxclI5AoFxIJOV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OmFib3V0PSIiICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgo8ZGM6Y3JlYXRvcj48cmRmOlNlcT48cmRmOmxpPnRlcmplaW88L3JkZjpsaT48L3JkZjpTZXE+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KPHhtcDpDcmVhdG9yVG9vbD5NaWNyb3NvZnTCriBXb3JkIDIwMTA8L3htcDpDcmVhdG9yVG9vbD48eG1wOkNyZWF0ZURhdGU+MjAxMS0wNC0wNlQxOToyOTo0NCswMjowMDwveG1wOkNyZWF0ZURhdGU+PHhtcDpNb2RpZnlEYXRlPjIwMTEtMDQtMDZUMTk6Mjk6NDQrMDI6MDA8L3htcDpNb2RpZnlEYXRlPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgo8eGFwTU06RG9jdW1lbnRJRD40MjY3QUQyNy1GNDY2LTQ2NzMtOTJEMy1BOTM3RDRCODZFNEU8L3hhcE1NOkRvY3VtZW50SUQ+PHhhcE1NOkluc3RhbmNlSUQ+NDI2N0FEMjctRjQ2Ni00NjczLTkyRDMtQTkzN0Q0Qjg2RTRFPC94YXBNTTpJbnN0YW5jZUlEPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6cGRmYWlkPSJodHRwOi8vd3d3LmFpaW0ub3JnL3BkZmEvbnMvaWQvIj4KPHBkZmFpZDpwYXJ0PjE8L3BkZmFpZDpwYXJ0PjxwZGZhaWQ6Y29uZm9ybWFuY2U+QjwvcGRmYWlkOmNvbmZvcm1hbmNlPjwvcmRmOkRlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9yZGY6UkRGPjwveDp4bXBtZXRhPjw/eHBhY2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ0KZW5kb2JqDQp4cmVmDQowIDEzDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTcgMDAwMDAgbg0KMDAwMDAwMDI5MyAwMDAwMCBuDQowMDAwMDAwMzQ5IDAwMDAwIG4NCjAwMDAwMDA1MTMgMDAwMDAgbg0KMDAwMDAwMDcwNyAwMDAwMCBuDQowMDAwMDAwODc0IDAwMDAwIG4NCjAwMDAwMDExMTIgMDAwMDAgbg0KMDAwMDAwMTMzMiAwMDAwMCBuDQowMDAwMDAxNTU0IDAwMDAwIG4NCjAwMDAwODE3ODMgMDAwMDAgbg0KMDAwMDA4MzMyOSAwMDAwMCBuDQowMDAwMDg2MDAyIDAwMDAwIG4NCnRyYWlsZXINCjw8L1NpemUgMTMvUm9vdCAxIDAgUi9JbmZvIDcgMCBSL0lEWzwyN0FENjc0MjY2RjQ3MzQ2OTJEM0E5MzdENEI4NkU0RT48MjdBRDY3NDI2NkY0NzM0NjkyRDNBOTM3RDRCODZFNEU+XSA+Pg0Kc3RhcnR4cmVmDQo4OTMwMA0KJSVFT0Y= - - - - - - 1234567890123 - - Supp123 - - - Salescompany ltd. - - - 1231412341324 - 5467 - Main street - Suite 123 - 1 - Revenue department - Big city - 54321 - RegionA - - NO - - - - NO999999999MVA - - VAT - - - - The Sellercompany Incorporated - 810418052 - - Big city - RegionA - - DK - - - - - O. Hansen - 46211230 - 46211231 - antonio@salescompany.dk - - - Antonio - Salemacher - M - Sales manager - - - - - - 1234567987654 - - 345KS5324 - - - Buyercompany ltd - - - 1238764941386 - 123 - Anystreet - Back door - 8 - Accounting department - Anytown - 101 - RegionB - - BE - - - - BE54321 - - VAT - - - - The buyercompany inc. - 810418052 - - Mainplace - RegionB - - BE - - - - - 3150bdn - 5121230 - 5121231 - john@buyercompany.eu - - - John - Doe - X - Purchasing manager - - - - - - 098740918237 - - - Ebeneser Scrooge Inc. - - - 6411982340 - - - - 2009-12-15 - - 6754238987648 - - Deliverystreet - Side door - 12 - DeliveryCity - 523427 - RegionC - - BE - - - - - - 31 - 2009-12-31 - SW - Payref1 - - NO9386011117947 - - 9710 - - DNBANOKK - - - - - - Penalty percentage 10% from due date - - - true - Packing cost - 100 - - S - 25 - - VAT - - - - - false - Promotion discount - 100 - - S - 25 - - VAT - - - - - 292.20 - - 1460.5 - 292.1 - - S - 25 - - VAT - - - - - 1 - 0.1 - - AA - 10 - - VAT - - - - - -25 - 0 - - E - 0 - AAM - Exempt New Means of Transport - - VAT - - - - - - 1436.5 - 1436.5 - 1729 - 100 - 100 - 1000 - 0.30 - 729 - - - 1 - Scratch on box - 1 - 1273 - BookingCode001 - - 1 - - - false - Damage - 12 - - - true - Testing - 12 - - - 254.6 - - - Processor: Intel Core 2 Duo SU9400 LV (1.4GHz). RAM: 3MB. Screen - 1440x900 - - Laptop computer - - JB007 - - - 1234567890124 - - - 12344321 - - - 65434568 - - - S - 25 - - VAT - - - - Color - Black - - - - 1273 - 1 - - false - Contract - 0.15 - 225 - 1500 - - - - - 2 - Cover is slightly damaged. - -1 - -3.96 - BookingCode002 - - 5 - - - -0.396 - - - Returned "Advanced computing" book - - JB008 - - - 1234567890125 - - - 32344324 - - - 65434567 - - - AA - 10 - - VAT - - - - - 3.96 - 1 - - - - 3 - 2 - 4.96 - BookingCode003 - - 3 - - - 0.496 - - - "Computing for dummies" book - - JB009 - - - 1234567890126 - - - 32344324 - - - 65434566 - - - AA - 10 - - VAT - - - - - 2.48 - 1 - - false - Contract - 0.1 - 0.275 - 2.75 - - - - - 4 - -1 - -25 - BookingCode004 - - 2 - - - 0 - - - Returned IBM 5150 desktop - - JB010 - - - 1234567890127 - - - 12344322 - - - 65434565 - - - E - 0 - - VAT - - - - - 25 - 1 - - - - 5 - 250 - 187.5 - BookingCode005 - - 4 - - - 37.5 - - - Network cable - - JB011 - - - 1234567890128 - - - 12344325 - - - 65434564 - - - S - 25 - - VAT - - - - Type - Cat5 - - - - 0.75 - 1 - - - - \ No newline at end of file diff --git a/oxalis-integration-test/src/test/resources/EHF-Invoice-2.0.8-no-sbdh.xml b/oxalis-integration-test/src/test/resources/EHF-Invoice-2.0.8-no-sbdh.xml deleted file mode 100644 index b73f14e1d..000000000 --- a/oxalis-integration-test/src/test/resources/EHF-Invoice-2.0.8-no-sbdh.xml +++ /dev/null @@ -1,504 +0,0 @@ - - 2.1 - - urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0 - - urn:www.cenbii.eu:profile:bii05:ver2.0 - TOSL108 - 2013-06-30 - 380 - Ordered in our booth at the convention. - 2013-06-30 - NOK - Project cost code 123 - - 2013-06-01 - 2013-06-30 - - - 123 - - - Contract321 - 2 - Framework agreement - - - Doc1 - Timesheet - - - http://www.suppliersite.eu/sheet001.html - - - - - Doc2 - EHF specification - - - - 810017902 - - 1238764941386 - - - Salescompany ltd. - - - Main street 34 - Suite 123 - Big city - 54321 - RegionA - - NO - - - - 123456785MVA - - VAT - - - - Unit4 test - 810017902 - - Big city - - NO - - - - - Our ref. - Oxalis tester - 46211230 - 46211231 - antonio@salescompany.no - - - - - - 810017902 - - 3456789012091 - - - The Buyercompany - - - Anystreet 8 - Back door - Anytown - 101 - RegionB - - NO - - - - 987654325MVA - - VAT - - - - Buyercompany ASA - 810017902 - - Mainplace - - NO - - - - - 3150bdn - John Doe - 5121230 - 5121231 - john@buyercompany.no - - - - - - 2298740918237 - - - Ebeneser Scrooge AS - - - 999999999 - - - - - Tax handling company AS - - - Regent street - Front door - Newtown - 101 - RegionC - - NO - - - - 999999999MVA - - VAT - - - - - 2013-06-15 - - 6754238987648 - - - - 31 - 2013-07-20 - 0003434323213231 - - NO9386011117947 - - 9710 - - DNBANOKK - - - - - - 2 % discount if paid within 2 days - - - Penalty percentage 10% from due date - - - true - 94 - Freight - 100 - - S - 25 - - VAT - - - - - false - 75 - Promotion discount - 100 - - S - 25 - - VAT - - - - - 365.28 - - 1460.5 - 365.13 - - S - 25 - - VAT - - - - - 1 - 0.15 - - H - 15 - - VAT - - - - - -25 - 0 - - E - 0 - Exempt New Means of Transport - - VAT - - - - - - 1436.5 - 1436.5 - 1802.00 - 100 - 100 - 1000 - 0.22 - 802.00 - - - 1 - Scratch on box - 1 - 1273 - BookingCode001 - - 2013-06-01 - 2013-06-30 - - - 1 - - - 2013-06-15 - - 6754238987643 - - Deliverystreet 2 - Side door - DeliveryCity - 523427 - RegionD - - NO - - - - - - false - Damage - 12 - - - true - Testing - 12 - - - - Processor: Intel Core 2 Duo SU9400 LV (1.4GHz). RAM: 3MB. Screen 1440x900 - - Laptop computer - - JB007 - - - 1234567890124 - - - DE - - - 12344321 - - - 65434568 - - - S - 25 - - VAT - - - - Color - Black - - - - Company name ASA - - - 904312347 - - - - - 1273 - 1 - - false - Contract - 0.15 - 225 - 1500 - - - - - 2 - Cover is slightly damaged. - -1 - -3.96 - BookingCode002 - - 5 - - - Returned "Advanced computing" book - - JB008 - - - 1234567890125 - - - 32344324 - - - 65434567 - - - H - 15 - - VAT - - - - - 3.96 - 1 - - - - 3 - 2 - 4.96 - BookingCode003 - - 3 - - - "Computing for dummies" book - - JB009 - - - 1234567890126 - - - 32344324 - - - 65434566 - - - H - 15 - - VAT - - - - - 2.48 - 1 - - false - Contract - 0.1 - 0.275 - 2.75 - - - - - 4 - -1 - -25 - BookingCode004 - - 2 - - - Returned IBM 5150 desktop - - JB010 - - - 1234567890127 - - - 12344322 - - - 65434565 - - - E - 0 - - VAT - - - - - 25 - 1 - - - - 5 - 250 - 187.5 - BookingCode005 - - 4 - - - Network cable - - JB011 - - - 1234567890128 - - - 12344325 - - - 65434564 - - - S - 25 - - VAT - - - - Type - Cat5 - - - - 0.75 - 1 - - - diff --git a/oxalis-integration-test/src/test/resources/logback-test.xml b/oxalis-integration-test/src/test/resources/logback-test.xml deleted file mode 100644 index 122fcdb6e..000000000 --- a/oxalis-integration-test/src/test/resources/logback-test.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - %d %level %thread [%c] %m %n - - - - - - - - - - - - - diff --git a/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh-itsligo.xml b/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh-itsligo.xml deleted file mode 100644 index 321b1f696..000000000 --- a/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh-itsligo.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - 1.0 - - 9908:810418052 - - - 0088:itsligotest2 - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - 2.0 - 1070e7f0-3bae-11e3-aa6e-0800200c9a66 - Invoice - 2013-02-19T05:10:10 - - - - DOCUMENTID - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0::2.0 - - - PROCESSID - urn:www.cenbii.eu:profile:bii04:ver1.0 - - - - - 2.0 - urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0 - urn:www.cenbii.eu:profile:bii04:ver1.0 - 1 - 2012-06-08 - 380 - 2012-06-08 - SEK - SOPE - - - - 5567125082 - - - Ecru Consulting - - - Gamla Brogatan - 29 - Stockholm - 11120 - - SE - - - - SE556712508201 - - VAT - - - - 976098897 - - - Martin - Forsberg - - - - - - - 810418052 - - - EKONOMISTYRNINGSVERKET (NATIONAL FINANCIAL MANAGEMENT AUTHORITY) - - - 45316 - EFFEKTIV ADMINISTRATION - STOCKHOLM - 104 30 - - SE - - - - 810418052 - - - 08 - 123456 - 08-123457 - infomail@esv.se - - - SOREN - PEDERSEN - - - - - 31 - 2012-06-23 - - 5955559 - - - BGABSESS - - - - - - 0.25 - - 1 - 0.25 - - S - 25 - - VAT - - - - - - 1 - 1 - 1.25 - 1.25 - - - 1 - 1 - 1 - - 1 - - - TEST AV PEPPOL-FAKTURA - - - 1 - 1 - - - - diff --git a/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh.xml b/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh.xml deleted file mode 100644 index 2a32dc5d1..000000000 --- a/oxalis-integration-test/src/test/resources/peppol-bis-invoice-sbdh.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - 1.0 - - 9908:976098897 - - - 9908:810418052 - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - 2.0 - 1070e7f0-3bae-11e3-aa6e-0800200c9a66 - Invoice - 2013-02-19T05:10:10 - - - - DOCUMENTID - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0::2.0 - - - PROCESSID - urn:www.cenbii.eu:profile:bii04:ver1.0 - - - - - 2.0 - urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0:#urn:www.peppol.eu:bis:peppol4a:ver1.0 - urn:www.cenbii.eu:profile:bii04:ver1.0 - 1 - 2012-06-08 - 380 - 2012-06-08 - SEK - SOPE - - - - 5567125082 - - - Ecru Consulting - - - Gamla Brogatan - 29 - Stockholm - 11120 - - SE - - - - SE556712508201 - - VAT - - - - 976098897 - - - Martin - Forsberg - - - - - - - 810418052 - - - EKONOMISTYRNINGSVERKET (NATIONAL FINANCIAL MANAGEMENT AUTHORITY) - - - 45316 - EFFEKTIV ADMINISTRATION - STOCKHOLM - 104 30 - - SE - - - - 810418052 - - - 08 - 123456 - 08-123457 - infomail@esv.se - - - SOREN - PEDERSEN - - - - - 31 - 2012-06-23 - - 5955559 - - - BGABSESS - - - - - - 0.25 - - 1 - 0.25 - - S - 25 - - VAT - - - - - - 1 - 1 - 1.25 - 1.25 - - - 1 - 1 - 1 - - 1 - - - TEST AV PEPPOL-FAKTURA - - - 1 - 1 - - - - diff --git a/oxalis-outbound/src/test/java/httpclient/HttpclientTest.java b/oxalis-outbound/src/test/java/httpclient/HttpclientTest.java deleted file mode 100644 index 9541f61b7..000000000 --- a/oxalis-outbound/src/test/java/httpclient/HttpclientTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package httpclient; - -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.protocol.HttpClientContext; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.SystemDefaultRoutePlanner; -import org.testng.annotations.Test; - -import javax.net.ssl.SSLHandshakeException; -import java.net.ProxySelector; - -import static org.testng.Assert.fail; - -/** - * Various tests to experiment with Apache HttpClient - * Created by soc on 02.03.2016. - */ -@Test(groups = {"integration"}) -public class HttpclientTest { - - - @Test(expectedExceptions = {SSLHandshakeException.class}) - public void failWhenCertificateIsSelfSigned() throws Exception { - HttpGet httpGet = new HttpGet("https://self-signed.badssl.com/"); - try (CloseableHttpClient httpClient = HttpClients.custom().build(); - CloseableHttpResponse response = httpClient.execute(httpGet); - ) { - fail("Attempt to http get from site with wrong host in SSL should have failed"); - } - } - - @Test - public void inspectCertificate() throws Exception { - - SystemDefaultRoutePlanner routePlanner = new SystemDefaultRoutePlanner(ProxySelector.getDefault()); - CloseableHttpClient httpClient = HttpClients.custom() - .setRoutePlanner(routePlanner) - .build(); - - HttpGet httpGet = new HttpGet("https://badssl.com"); - - HttpClientContext context = HttpClientContext.create(); - - CloseableHttpResponse response = httpClient.execute(httpGet,context); - - } -} diff --git a/oxalis-outbound/src/test/java/no/difi/oxalis/outbound/guice/TestResourceModule.java b/oxalis-outbound/src/test/java/no/difi/oxalis/outbound/guice/TestResourceModule.java index 7c377cbd3..a1ab27285 100644 --- a/oxalis-outbound/src/test/java/no/difi/oxalis/outbound/guice/TestResourceModule.java +++ b/oxalis-outbound/src/test/java/no/difi/oxalis/outbound/guice/TestResourceModule.java @@ -39,7 +39,7 @@ import static org.testng.Assert.assertNotNull; /** - * Guice module providing different testfiles used by unit and integration tests + * Guice module providing different testfiles used by unit tests * * @author steinar * @author thore diff --git a/oxalis-standalone/src/test/java/eu/sendregning/oxalis/MainIT.java b/oxalis-standalone/src/test/java/eu/sendregning/oxalis/MainIT.java deleted file mode 100644 index 1c855e69a..000000000 --- a/oxalis-standalone/src/test/java/eu/sendregning/oxalis/MainIT.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright 2010-2017 Norwegian Agency for Public Management and eGovernment (Difi) - * - * Licensed under the EUPL, Version 1.1 or – as soon they - * will be approved by the European Commission - subsequent - * versions of the EUPL (the "Licence"); - * - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence at: - * - * https://joinup.ec.europa.eu/community/eupl/og_page/eupl - * - * Unless required by applicable law or agreed to in - * writing, software distributed under the Licence is - * distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. - * See the Licence for the specific language governing - * permissions and limitations under the Licence. - */ - -package eu.sendregning.oxalis; - -import com.google.inject.Inject; -import no.difi.oxalis.test.identifier.WellKnownParticipant; -import joptsimple.OptionParser; -import joptsimple.OptionSet; -import no.difi.oxalis.commons.guice.GuiceModuleLoader; -import no.difi.vefa.peppol.mode.Mode; -import org.testng.annotations.Guice; -import org.testng.annotations.Test; - -import java.io.File; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; - -import static org.testng.Assert.*; - -/** - * TODO Enable testing. - * - * @author steinar - * Date: 08.11.13 - * Time: 14:17 - */ -@Test(groups = {"integration"}) -@Guice(modules = GuiceModuleLoader.class) -public class MainIT { - - @Inject - private Mode mode; - - File systemTempDir() { - String tmpDirName = System.getProperty("java.io.tmpdir"); - assertNotNull(tmpDirName, "System tmp dir property java.io.tmpdir returned null"); - File tmpDir = new File(tmpDirName); - if (!tmpDir.exists() || !tmpDir.isDirectory()) { - throw new IllegalStateException(tmpDir + " does not exist or is not a directory"); - } - return tmpDir; - } - - @Test(enabled = true) - public void sendToDifiTest() throws URISyntaxException { - assertEquals(mode.getIdentifier(), "TEST", "This test may only be run in TEST mode"); - - URL resource = MainIT.class.getClassLoader().getResource("BII04_T10_EHF-v2.0_invoice.xml"); - URI uri = resource.toURI(); - File testFile = new File(uri); - assertTrue(testFile.canRead(), "Can not locate " + testFile); - - String[] args = { - "-f", testFile.toString(), - "-r", WellKnownParticipant.DIFI_TEST.toString(), - "-s", WellKnownParticipant.U4_TEST.toString(), - "-x", "1", - "-e", "/tmp" // write evidence to /tmp - }; - - // Executes the outbound message sender - try { - Main.main(args); - } catch (Exception e) { - fail("Failed " + e.getMessage(), e); - } - } - - /** - * Verifies that if transmission fails, the Main task should "hang" indefinetely. - * - * @throws URISyntaxException - */ - @Test(enabled = true) - public void makeEverythingHang() throws URISyntaxException { - assertEquals(mode.getIdentifier(), "TEST", "This test may only be run in TEST mode"); - - URL resource = MainIT.class.getClassLoader().getResource("BII04_T10_EHF-v2.0_invoice.xml"); - URI uri = resource.toURI(); - File testFile = new File(uri); - assertTrue(testFile.canRead(), "Can not locate " + testFile); - - String[] args = { - "-f", testFile.toString(), - "-r", WellKnownParticipant.DIFI_TEST.toString(), - "-s", WellKnownParticipant.U4_TEST.toString(), - "-x", "2", // Two threads - "--repeat", "10", // Transmits the file 10 times - "-m", "as2", - "-i", "AP_DUMYY0001", - "-u", "http://rubbish", - // "-factory", "true", - "-e", "/tmp" // current directory - }; - - // Executes the outbound message sender - try { - Main.main(args); - } catch (Exception e) { - fail("Failed " + e.getMessage(), e); - } - } - - - @Test(enabled = false) - public void sendToHafslundTellier() throws Exception { - assertEquals(mode.getIdentifier(), "TEST", "This test may only be run in TEST mode"); - - File testFile = new File("/tmp/Out"); - assertTrue(testFile.canRead(), "Can not locate " + testFile); - - String[] args = { - "-f", testFile.toString(), - "-r", "9908:971589671", - "-s", WellKnownParticipant.DUMMY.toString(), - // "-u", "https://ap-test.hafslundtellier.no/oxalis/as2", - "-u", "http://localhost:8080/oxalis/as2", - "-m", "as2", - "-i", "APP_10000XXX", - "-t", "true", - "-e", "/tmp/evidence" // current directory - }; - - // Executes the outbound message sender - try { - Main.main(args); - } catch (Exception e) { - fail("Failed " + e.getMessage(), e); - } - } - - @Test(enabled = false) - public void sendToEspapTest() throws URISyntaxException { - assertEquals(mode.getIdentifier(), "TEST", "This test may only be run in TEST mode"); - - URL resource = MainIT.class.getClassLoader().getResource("BII04_T10_EHF-v2.0_invoice.xml"); - URI uri = resource.toURI(); - File testFile = new File(uri); - assertTrue(testFile.canRead(), "Can not locate " + testFile); - - String[] args = { - "-f", testFile.toString(), - "-r", "9946:ESPAP", - "-s", WellKnownParticipant.DIFI_TEST.toString(), - "-t", "true", - "-u", "https://ap1.espap.pt/oxalis/as2", - "-m", "AS2", - "-i", "APP_1000000222" - }; - - // Executes the outbound message sender - try { - Main.main(args); - } catch (Exception e) { - fail("Failed " + e.getMessage()); - } - } - - - @Test - public void testGetOptionParser() throws Exception { - OptionParser optionParser = Main.getOptionParser(); - - String tmpDir = systemTempDir().toString(); - - OptionSet optionSet = optionParser.parse("-f", "/tmp/dummy", "-s", "9908:976098897", "-r", "9908:810017902", "-u", "https://ap.unit4.com", "-m", "as2", "-e", tmpDir); - assertTrue(optionSet.has("u")); - assertTrue(optionSet.has("f")); - assertTrue(optionSet.has("e")); - Object e = optionSet.valueOf("e"); - assertNotNull(e); - assertTrue(e instanceof File); - File f = (File) e; - assertEquals(f, new File(tmpDir)); - } - - @Test - public void senderAndReceiverIsOptional() throws Exception { - OptionParser optionParser = Main.getOptionParser(); - - OptionSet optionSet = optionParser.parse("-f", "/tmp/dummy", "-u", "https://ap.unit4.com", "-m", "as2"); - assertFalse(optionSet.has("-r")); - assertFalse(optionSet.has("-s")); - } -} diff --git a/oxalis-statistics/src/test/java/no/difi/oxalis/statistics/security/OxalisCipherTest.java b/oxalis-statistics/src/test/java/no/difi/oxalis/statistics/security/OxalisCipherTest.java index 99049fbbc..cd7f61b3a 100644 --- a/oxalis-statistics/src/test/java/no/difi/oxalis/statistics/security/OxalisCipherTest.java +++ b/oxalis-statistics/src/test/java/no/difi/oxalis/statistics/security/OxalisCipherTest.java @@ -169,7 +169,7 @@ private byte[] encryptString(String plainText, Charset charset) * @param publicKey * @throws Exception */ - @Test(groups = {"integration"}, dataProvider = "publicKey", enabled = true) + @Test(dataProvider = "publicKey") public void encryptDataEncryptKeyAndReverse(PublicKey publicKey) throws Exception { String plainText = "Sample data for testing purposes æøå"; diff --git a/pom.xml b/pom.xml index 1ce5012a1..957d957d6 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,6 @@ oxalis-as2 oxalis-test-impl oxalis-persistence - oxalis-integration-test oxalis-distribution oxalis-legacy oxalis-statistics @@ -622,66 +621,6 @@ - - - - it-test - - - oxalis.configuration.file - - - - - - - maven-surefire-plugin - - - none,difi,manual - - - - - maven-enforcer-plugin - - - - - ${oxalis.configuration.file} - - - - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - perform-it - - integration-test - verify - - - none,manual - - - - - - - - release-sign-artifacts