Skip to content

Commit

Permalink
Merge pull request #313 from weclapp-dev/master
Browse files Browse the repository at this point in the history
Update helger library
  • Loading branch information
jstaerk committed Apr 18, 2023
2 parents 24ae48c + 610745a commit fb9483f
Show file tree
Hide file tree
Showing 4 changed files with 127 additions and 92 deletions.
3 changes: 2 additions & 1 deletion library/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
<dependency>
<groupId>com.helger</groupId>
<artifactId>en16931-cii2ubl</artifactId>
<version>1.3.0</version>
<version>1.4.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
<dependency>
Expand All @@ -122,6 +122,7 @@
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-assertj</artifactId>
<version>2.9.1</version>
<scope>test</scope>
</dependency>
<!-- API -->
<dependency>
Expand Down
37 changes: 24 additions & 13 deletions library/src/main/java/org/mustangproject/CII/CIIToUBL.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package org.mustangproject.CII;
import com.helger.commons.error.list.ErrorList;
import com.helger.en16931.cii2ubl.CIIToUBL22Converter;
import com.helger.ubl21.UBL21Writer;
import com.helger.ubl22.UBL22Writer;

import java.io.File;
import java.io.Serializable;

import com.helger.commons.error.list.ErrorList;
import com.helger.en16931.cii2ubl.CIIToUBL23Converter;
import com.helger.ubl21.UBL21Writer;
import com.helger.ubl22.UBL22Writer;
import com.helger.ubl23.UBL23Writer;

/***
* converts a Cross Industry Invoice XML file to a UBL XML file
* thanks to Philip Helger for his library
Expand All @@ -18,36 +20,45 @@ public class CIIToUBL {
* @param output the UBL file to write to
*/
public void convert(File input, File output) {
ErrorList occurred=new ErrorList();
CIIToUBL22Converter cc=new CIIToUBL22Converter();
Serializable aUBL = cc.convertCIItoUBL(input, occurred);
final ErrorList occurred=new ErrorList();
final CIIToUBL23Converter cc=new CIIToUBL23Converter();
final Serializable aUBL = cc.convertCIItoUBL(input, occurred);
if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_21.InvoiceType)
{
UBL21Writer.invoice ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.invoice_21.InvoiceType) aUBL, output);
}
else
if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType)
else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType)
{
UBL21Writer.creditNote ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType) aUBL, output);
}
else
if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType)
else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType)
{
UBL22Writer.invoice ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType) aUBL, output);
}
else
if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType)
else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType)
{
UBL22Writer.creditNote ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType) aUBL, output);
}
else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_23.InvoiceType)
{
UBL23Writer.invoice ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.invoice_23.InvoiceType) aUBL, output);
}
else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_23.CreditNoteType)
{
UBL23Writer.creditNote ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.creditnote_23.CreditNoteType) aUBL, output);
}
}

}
37 changes: 24 additions & 13 deletions library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,31 @@
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Date;

import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
import org.mustangproject.*;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.mustangproject.BankDetails;
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 {
final String TARGET_XML = "./target/testout-1Lieferschein.xml";

public UBLTest() {
}

@Test
@Order(2)
public void testUBLBasic() {

// the writing part
Expand All @@ -52,21 +61,23 @@ public void testUBLBasic() {
try {
final File tempFile = File.createTempFile("ZUGFeRD-UBL-", "-test");
c2u.convert(input, tempFile);
expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath()).replaceAll("\r\n", "\n");
result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath()).replaceAll("\r\n", "\n");
expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath());
result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath());
} catch (final IOException e) {
fail("Exception should not happen: " + e.getMessage());
}


assertNotNull(result);
assertEquals(expected, result);
Assertions.assertThat(result).isXmlEqualTo(expected);
}

@Test
@Order(1)
public void test1Lieferschein() {

EinLieferscheinExporter oe = new EinLieferscheinExporter();
Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
final EinLieferscheinExporter oe = new EinLieferscheinExporter();
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")))
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"))
.setReferenceNumber("991-01484-64")//leitweg-id
Expand All @@ -75,13 +86,13 @@ public void test1Lieferschein() {

try {
oe.setTransaction(i);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
final ByteArrayOutputStream baos=new ByteArrayOutputStream();
oe.export(baos);

String theXML = baos.toString("UTF-8");
final String theXML = baos.toString("UTF-8");
assertTrue(theXML.contains("<DespatchAdvice"));
Files.write(Paths.get(TARGET_XML), theXML.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
} catch (final IOException e) {
e.printStackTrace();
}

Expand Down
Loading

0 comments on commit fb9483f

Please sign in to comment.