Update dependency com.helger.en16931-cii2ubl

v1.3.0 -> v1.4.2
Adjust test
This commit is contained in:
Sebastian Sieber
2023-04-14 07:59:47 +02:00
parent c6d786363d
commit 8dac7d2cb3
3 changed files with 85 additions and 72 deletions

View File

@@ -102,7 +102,7 @@
<dependency> <dependency>
<groupId>com.helger</groupId> <groupId>com.helger</groupId>
<artifactId>en16931-cii2ubl</artifactId> <artifactId>en16931-cii2ubl</artifactId>
<version>1.3.0</version> <version>1.4.2</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime --> <!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
<dependency> <dependency>

View File

@@ -24,22 +24,31 @@ package org.mustangproject.ZUGFeRD;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Date; import java.util.Date;
import org.junit.FixMethodOrder; import org.assertj.core.api.Assertions;
import org.junit.runners.MethodSorters; import org.junit.jupiter.api.Order;
import org.mustangproject.*; import org.junit.jupiter.api.Test;
import org.mustangproject.BankDetails;
import org.mustangproject.CII.CIIToUBL; import org.mustangproject.CII.CIIToUBL;
import org.mustangproject.Contact;
import org.mustangproject.Invoice;
import org.mustangproject.Item;
import org.mustangproject.Product;
import org.mustangproject.TradeParty;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class UBLTest extends ResourceCase { public class UBLTest extends ResourceCase {
final String TARGET_XML = "./target/testout-1Lieferschein.xml"; final String TARGET_XML = "./target/testout-1Lieferschein.xml";
public UBLTest() {
}
@Test
@Order(2)
public void testUBLBasic() { public void testUBLBasic() {
// the writing part // the writing part
@@ -52,21 +61,23 @@ public class UBLTest extends ResourceCase {
try { try {
final File tempFile = File.createTempFile("ZUGFeRD-UBL-", "-test"); final File tempFile = File.createTempFile("ZUGFeRD-UBL-", "-test");
c2u.convert(input, tempFile); c2u.convert(input, tempFile);
expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath()).replaceAll("\r\n", "\n"); expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath());//.replaceAll("\r\n", "\n");
result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath()).replaceAll("\r\n", "\n"); result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath());//.replaceAll("\r\n", "\n");
} catch (final IOException e) { } catch (final IOException e) {
fail("Exception should not happen: " + e.getMessage()); fail("Exception should not happen: " + e.getMessage());
} }
assertNotNull(result); assertNotNull(result);
assertEquals(expected, result); Assertions.assertThat(result).isXmlEqualTo(expected);
} }
@Test
@Order(1)
public void test1Lieferschein() { public void test1Lieferschein() {
EinLieferscheinExporter oe = new EinLieferscheinExporter(); final EinLieferscheinExporter oe = new EinLieferscheinExporter();
Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()) final Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
.setSender(new TradeParty("Test company", "teststr", "55232", "teststadt", "DE").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test", "+49123456789", "test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890", "COBADEFXXX"))) .setSender(new TradeParty("Test company", "teststr", "55232", "teststadt", "DE").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test", "+49123456789", "test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890", "COBADEFXXX")))
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")) .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"))
.setReferenceNumber("991-01484-64")//leitweg-id .setReferenceNumber("991-01484-64")//leitweg-id
@@ -75,13 +86,13 @@ public class UBLTest extends ResourceCase {
try { try {
oe.setTransaction(i); oe.setTransaction(i);
ByteArrayOutputStream baos=new ByteArrayOutputStream(); final ByteArrayOutputStream baos=new ByteArrayOutputStream();
oe.export(baos); oe.export(baos);
String theXML = baos.toString("UTF-8"); final String theXML = baos.toString("UTF-8");
assertTrue(theXML.contains("<DespatchAdvice")); assertTrue(theXML.contains("<DespatchAdvice"));
Files.write(Paths.get(TARGET_XML), theXML.getBytes(StandardCharsets.UTF_8)); Files.write(Paths.get(TARGET_XML), theXML.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) { } catch (final IOException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"> <Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
<cbc:CustomizationID>urn:cen.eu:en16931:2017:extended:urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>RE-20201121/508</cbc:ID> <cbc:ID>RE-20201121/508</cbc:ID>
<cbc:IssueDate>2020-11-21</cbc:IssueDate> <cbc:IssueDate>2020-11-21</cbc:IssueDate>
@@ -13,21 +15,21 @@
<cac:PartyName> <cac:PartyName>
<cbc:Name>Bei Spiel GmbH</cbc:Name> <cbc:Name>Bei Spiel GmbH</cbc:Name>
</cac:PartyName> </cac:PartyName>
<cac:PostalAddress> <cac:PostalAddress>
<cbc:StreetName>Ecke 12</cbc:StreetName> <cbc:StreetName>Ecke 12</cbc:StreetName>
<cbc:CityName>Stadthausen</cbc:CityName> <cbc:CityName>Stadthausen</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone> <cbc:PostalZone>12345</cbc:PostalZone>
<cac:Country> <cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode> <cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country> </cac:Country>
</cac:PostalAddress> </cac:PostalAddress>
<cac:PartyTaxScheme> <cac:PartyTaxScheme>
<cbc:CompanyID>DE136695976</cbc:CompanyID> <cbc:CompanyID>DE136695976</cbc:CompanyID>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:PartyTaxScheme> </cac:PartyTaxScheme>
<cac:PartyLegalEntity> <cac:PartyLegalEntity>
<cbc:RegistrationName>Bei Spiel GmbH</cbc:RegistrationName> <cbc:RegistrationName>Bei Spiel GmbH</cbc:RegistrationName>
</cac:PartyLegalEntity> </cac:PartyLegalEntity>
</cac:Party> </cac:Party>
@@ -37,18 +39,18 @@
<cac:PartyIdentification> <cac:PartyIdentification>
<cbc:ID>2</cbc:ID> <cbc:ID>2</cbc:ID>
</cac:PartyIdentification> </cac:PartyIdentification>
<cac:PartyName> <cac:PartyName>
<cbc:Name>Theodor Est</cbc:Name> <cbc:Name>Theodor Est</cbc:Name>
</cac:PartyName> </cac:PartyName>
<cac:PostalAddress> <cac:PostalAddress>
<cbc:StreetName>Bahnstr. 42</cbc:StreetName> <cbc:StreetName>Bahnstr. 42</cbc:StreetName>
<cbc:CityName>Spielkreis</cbc:CityName> <cbc:CityName>Spielkreis</cbc:CityName>
<cbc:PostalZone>88802</cbc:PostalZone> <cbc:PostalZone>88802</cbc:PostalZone>
<cac:Country> <cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode> <cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country> </cac:Country>
</cac:PostalAddress> </cac:PostalAddress>
<cac:PartyLegalEntity> <cac:PartyLegalEntity>
<cbc:RegistrationName>Theodor Est</cbc:RegistrationName> <cbc:RegistrationName>Theodor Est</cbc:RegistrationName>
</cac:PartyLegalEntity> </cac:PartyLegalEntity>
</cac:Party> </cac:Party>
@@ -61,24 +63,24 @@
</cac:PaymentTerms> </cac:PaymentTerms>
<cac:TaxTotal> <cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">75.04</cbc:TaxAmount> <cbc:TaxAmount currencyID="EUR">75.04</cbc:TaxAmount>
<cac:TaxSubtotal> <cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">160.00</cbc:TaxableAmount> <cbc:TaxableAmount currencyID="EUR">160.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">11.20</cbc:TaxAmount> <cbc:TaxAmount currencyID="EUR">11.20</cbc:TaxAmount>
<cac:TaxCategory> <cac:TaxCategory>
<cbc:ID>S</cbc:ID> <cbc:ID>S</cbc:ID>
<cbc:Percent>7.00</cbc:Percent> <cbc:Percent>7.00</cbc:Percent>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:TaxCategory> </cac:TaxCategory>
</cac:TaxSubtotal> </cac:TaxSubtotal>
<cac:TaxSubtotal> <cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">336.00</cbc:TaxableAmount> <cbc:TaxableAmount currencyID="EUR">336.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">63.84</cbc:TaxAmount> <cbc:TaxAmount currencyID="EUR">63.84</cbc:TaxAmount>
<cac:TaxCategory> <cac:TaxCategory>
<cbc:ID>S</cbc:ID> <cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent> <cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:TaxCategory> </cac:TaxCategory>
@@ -86,71 +88,71 @@
</cac:TaxTotal> </cac:TaxTotal>
<cac:LegalMonetaryTotal> <cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">496.00</cbc:LineExtensionAmount> <cbc:LineExtensionAmount currencyID="EUR">496.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">496.00</cbc:TaxExclusiveAmount> <cbc:TaxExclusiveAmount currencyID="EUR">496.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">571.04</cbc:TaxInclusiveAmount> <cbc:TaxInclusiveAmount currencyID="EUR">571.04</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount> <cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount> <cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="EUR">0.00</cbc:PrepaidAmount> <cbc:PrepaidAmount currencyID="EUR">0.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">571.04</cbc:PayableAmount> <cbc:PayableAmount currencyID="EUR">571.04</cbc:PayableAmount>
</cac:LegalMonetaryTotal> </cac:LegalMonetaryTotal>
<cac:InvoiceLine> <cac:InvoiceLine>
<cbc:ID>1</cbc:ID> <cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="HUR">1.0000</cbc:InvoicedQuantity> <cbc:InvoicedQuantity unitCode="HUR">1.0000</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">160.00</cbc:LineExtensionAmount> <cbc:LineExtensionAmount currencyID="EUR">160.00</cbc:LineExtensionAmount>
<cac:Item> <cac:Item>
<cbc:Description>Of a sample invoice</cbc:Description> <cbc:Description>Of a sample invoice</cbc:Description>
<cbc:Name>Design (hours)</cbc:Name> <cbc:Name>Design (hours)</cbc:Name>
<cac:ClassifiedTaxCategory> <cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID> <cbc:ID>S</cbc:ID>
<cbc:Percent>7.00</cbc:Percent> <cbc:Percent>7.00</cbc:Percent>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:ClassifiedTaxCategory> </cac:ClassifiedTaxCategory>
</cac:Item> </cac:Item>
<cac:Price> <cac:Price>
<cbc:PriceAmount currencyID="EUR">160.0000</cbc:PriceAmount> <cbc:PriceAmount currencyID="EUR">160.0000</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="HUR">1.0000</cbc:BaseQuantity> <cbc:BaseQuantity unitCode="HUR">1.0000</cbc:BaseQuantity>
</cac:Price> </cac:Price>
</cac:InvoiceLine> </cac:InvoiceLine>
<cac:InvoiceLine> <cac:InvoiceLine>
<cbc:ID>2</cbc:ID> <cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="H87">400.0000</cbc:InvoicedQuantity> <cbc:InvoicedQuantity unitCode="H87">400.0000</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">316.00</cbc:LineExtensionAmount> <cbc:LineExtensionAmount currencyID="EUR">316.00</cbc:LineExtensionAmount>
<cac:Item> <cac:Item>
<cbc:Description>various colors, ~2000ml</cbc:Description> <cbc:Description>various colors, ~2000ml</cbc:Description>
<cbc:Name>Ballons</cbc:Name> <cbc:Name>Ballons</cbc:Name>
<cac:ClassifiedTaxCategory> <cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID> <cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent> <cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:ClassifiedTaxCategory> </cac:ClassifiedTaxCategory>
</cac:Item> </cac:Item>
<cac:Price> <cac:Price>
<cbc:PriceAmount currencyID="EUR">0.7900</cbc:PriceAmount> <cbc:PriceAmount currencyID="EUR">0.7900</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="H87">1.0000</cbc:BaseQuantity> <cbc:BaseQuantity unitCode="H87">1.0000</cbc:BaseQuantity>
</cac:Price> </cac:Price>
</cac:InvoiceLine> </cac:InvoiceLine>
<cac:InvoiceLine> <cac:InvoiceLine>
<cbc:ID>3</cbc:ID> <cbc:ID>3</cbc:ID>
<cbc:InvoicedQuantity unitCode="LTR">800.0000</cbc:InvoicedQuantity> <cbc:InvoicedQuantity unitCode="LTR">800.0000</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">20.00</cbc:LineExtensionAmount> <cbc:LineExtensionAmount currencyID="EUR">20.00</cbc:LineExtensionAmount>
<cac:Item> <cac:Item>
<cbc:Description></cbc:Description> <cbc:Description></cbc:Description>
<cbc:Name>Hot air „heiße Luft“ (litres)</cbc:Name> <cbc:Name>Hot air „heiße Luft“ (litres)</cbc:Name>
<cac:ClassifiedTaxCategory> <cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID> <cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent> <cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme> <cac:TaxScheme>
<cbc:ID>VAT</cbc:ID> <cbc:ID>VAT</cbc:ID>
</cac:TaxScheme> </cac:TaxScheme>
</cac:ClassifiedTaxCategory> </cac:ClassifiedTaxCategory>
</cac:Item> </cac:Item>
<cac:Price> <cac:Price>
<cbc:PriceAmount currencyID="EUR">0.0250</cbc:PriceAmount> <cbc:PriceAmount currencyID="EUR">0.0250</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="LTR">1.0000</cbc:BaseQuantity> <cbc:BaseQuantity unitCode="LTR">1.0000</cbc:BaseQuantity>
</cac:Price> </cac:Price>
</cac:InvoiceLine> </cac:InvoiceLine>
</Invoice> </Invoice>