/*
* 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.sniffer.identifier;
import org.testng.Assert;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotEquals;
/**
* @author Steinar Overbeck Cook steinar@sendregning.no
*/
public class DocumentTypeIdentifierTest {
@Test
public void testValueOf() throws Exception {
String documentIdAsText =
"urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse" +
"##urn:www.cenbii.eu:transaction:biicoretrdm057:ver1.0" +
":#urn:www.peppol.eu:bis:peppol1a:ver1.0" +
"::2.0";
PeppolDocumentTypeId documentTypeIdentifier = PeppolDocumentTypeId.valueOf(documentIdAsText);
assertEquals(documentTypeIdentifier.toString(), documentIdAsText);
assertEquals(documentTypeIdentifier.getRootNameSpace(),
"urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2");
assertEquals(documentTypeIdentifier.getLocalName(), "ApplicationResponse");
Assert.assertEquals(documentTypeIdentifier.getCustomizationIdentifier(), CustomizationIdentifier.valueOf(
"urn:www.cenbii.eu:transaction:biicoretrdm057:ver1.0" +
":#urn:www.peppol.eu:bis:peppol1a:ver1.0"));
assertEquals(documentTypeIdentifier.getVersion(), "2.0");
}
@Test
public void equals() {
String s = "urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.cenbii.eu:profile:biixx:ver1.0" +
"#urn:www.difi.no:ehf:kreditnota:ver1" +
"::2.0";
String s2 = "urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.cenbii.eu:profile:biixx:ver1.0" +
"#urn:www.difi.no:ehf:kreditnota:ver1" +
"::3.0";
PeppolDocumentTypeId d1 = PeppolDocumentTypeId.valueOf(s);
PeppolDocumentTypeId d2 = PeppolDocumentTypeId.valueOf(s);
PeppolDocumentTypeId d3 = PeppolDocumentTypeId.valueOf(s2);
assertEquals(d1, d2);
assertNotEquals(d1, d3);
}
/**
* Verifies the Tender document
*/
@Test
public void tender() throws Exception {
PeppolDocumentTypeId tender = new PeppolDocumentTypeId(
"urn:oasis:names:specification:ubl:schema:xsd:Tender-2",
"Tender",
new CustomizationIdentifier("urn:www.cenbii.eu:transaction:biitrdm090:ver3.0")
, "2.1");
assertEquals("urn:oasis:names:specification:ubl:schema:xsd:Tender-2::Tender" +
"##urn:www.cenbii.eu:transaction:biitrdm090:ver3.0" +
"::2.1", tender.toString());
}
@Test
public void testLotsOfExpectedPeppolDocumentTypeIds() {
// These are known to be in use and should be parsable without errors
String[] documentIdentifiers = {
// BIS and EHF
"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",
"urn:oasis:names:specification:ubl:schema:xsd:Reminder-2::Reminder" +
"##urn:www.cenbii.eu:transaction:biicoretrdm017:ver1.0" +
":#urn:www.cenbii.eu:profile:biixy:ver1.0" +
"#urn:www.difi.no:ehf:purring:ver1" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order" +
"##urn:www.cenbii.eu:transaction:biicoretrdm001:ver1.0" +
":#urn:www.peppol.eu:bis:peppol3a:ver1.0" +
"::2.0",
"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",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##urn:www.cenbii.eu:transaction:biicoretrdm015:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.cenbii.eu:profile:biixy:ver1.0" +
"#urn:www.difi.no:ehf:kreditnota:ver1" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2::OrderResponseSimple" +
"##urn:www.cenbii.eu:transaction:biicoretrdm003:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2::Catalogue" +
"##urn:www.cenbii.eu:transaction:biicoretrdm019:ver1.0" +
":#urn:www.peppol.eu:bis:peppol1a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2::OrderResponseSimple" +
"##urn:www.cenbii.eu:transaction:biicoretrdm002:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##urn:www.cenbii.eu:transaction:biicoretrdm015:ver1.0" +
":#urn:www.peppol.eu:bis:peppol5a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0" +
":#urn:www.cenbii.eu:profile:biixy:ver1.0" +
"#urn:www.difi.no:ehf:faktura:ver1" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.cenbii.eu:profile:biixx:ver1.0" +
"#urn:www.difi.no:ehf:kreditnota:ver1" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse" +
"##urn:www.cenbii.eu:transaction:biicoretrdm057:ver1.0" +
":#urn:www.peppol.eu:bis:peppol1a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order" +
"##urn:www.cenbii.eu:transaction:biicoretrdm001:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse" +
"##urn:www.cenbii.eu:transaction:biicoretrdm058:ver1.0" +
":#urn:www.peppol.eu:bis:peppol1a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0" +
":#urn:www.peppol.eu:bis:peppol6a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##urn:www.cenbii.eu:transaction:biicoretrdm014:ver1.0" +
":#urn:www.peppol.eu:bis:peppol5a:ver1.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##urn:www.cenbii.eu:transaction:biicoretrdm010:ver1.0" +
":#urn:www.peppol.eu:bis:peppol5a:ver1.0" +
"::2.0",
// NESUBL
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote" +
"##NESUBL-2.0" +
"::2.0",
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##NESUBL-2.0" +
"::2.0",
// OIOUBL
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice" +
"##OIOUBL-2.02" +
"::2.0"
};
for (String s : documentIdentifiers) {
PeppolDocumentTypeId d = PeppolDocumentTypeId.valueOf(s);
assertEquals(d.toString(), s);
}
}
}