diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
index c0aee220..70afed71 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
@@ -49,7 +49,252 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
// //////// TESTS
// //////////////////////////////////////////////////////////////////////////////////////////
+ public void testCustomZF2Export() throws Exception {
+ final String TARGET_PDF = "./target/testout-MustangGnuaccountingBeispielRE-20171118_506custom.pdf";
+ // the writing part
+
+ try {
+ InputStream SOURCE_PDF = this.getClass()
+ .getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
+
+ ZUGFeRDExporter zea1 = new ZUGFeRDExporterFromA1Factory().setProducer("My Application").setCreator("Test").setZUGFeRDConformanceLevel(ZUGFeRDConformanceLevel.EN16931)
+ .load(SOURCE_PDF);
+
+ final byte[] UTF8ByteOrderMark = new byte[] { (byte)0xef, (byte)0xbb,
+ (byte)0xbf };
+ /* we have much more information than just in the basic profile (comfort or extended) but it's perfectly valid to provide more information, just not less. */
+ String ownZUGFeRDXML = new String(UTF8ByteOrderMark)+"\n" +
+ "\n" +
+ " \n" +
+ " false\n" +
+ " \n" +
+ " urn:cen.eu:en16931:2017:compliant:factur-x.eu:1p0:extended\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " RE-20171118/506\n" +
+ " RECHNUNG\n" +
+ " 380\n" +
+ " 20171118\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 1\n" +
+ " \n" +
+ " \n" +
+ " Künstlerische Gestaltung (Stunde): Einer Beispielrechnung\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 160.0000\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " 160.0000\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " VAT\n" +
+ " S\n" +
+ " 7.00\n" +
+ " \n" +
+ " \n" +
+ " 160.00\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 2\n" +
+ " \n" +
+ " \n" +
+ " Luftballon: Bunt, ca. 500ml\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 0.7900\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " 0.7900\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 400.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " VAT\n" +
+ " S\n" +
+ " 19.00\n" +
+ " \n" +
+ " \n" +
+ " 316.00\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 3\n" +
+ " \n" +
+ " \n" +
+ " Heiße Luft pro Liter\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 0.1000\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " 0.1000\n" +
+ " 1.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 200.0000\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " VAT\n" +
+ " S\n" +
+ " 19.00\n" +
+ " \n" +
+ " \n" +
+ " 20.00\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " Bei Spiel GmbH\n" +
+ " \n" +
+ " 12345\n" +
+ " Ecke 12\n" +
+ " Stadthausen\n" +
+ " DE\n" +
+ " \n" +
+ " \n" +
+ " 22/815/0815/4\n" +
+ " \n" +
+ " \n" +
+ " DE136695976\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " Theodor Est\n" +
+ " \n" +
+ " 88802\n" +
+ " Bahnstr. 42\n" +
+ " Spielkreis\n" +
+ " DE\n" +
+ " \n" +
+ " \n" +
+ " DE999999999\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 20171117\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " RE-20171118/506\n" +
+ " EUR\n" +
+ " \n" +
+ " 42\n" +
+ " Überweisung\n" +
+ " \n" +
+ " DE88 2008 0000 0970 3757 00\n" +
+ " \n" +
+ " \n" +
+ " COBADEFFXXX\n" +
+ " Commerzbank\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " 11.20\n" +
+ " VAT\n" +
+ " 160.00\n" +
+ " S\n" +
+ " 7.00\n" +
+ " \n" +
+ " \n" +
+ " 63.84\n" +
+ " VAT\n" +
+ " 336.00\n" +
+ " S\n" +
+ " 19.00\n" +
+ " \n" +
+ " \n" +
+ " Zahlbar ohne Abzug bis 09.12.2017\n" +
+ " 20171209\n" +
+ " \n" +
+ " \n" +
+ " 496.00\n" +
+ " 0.00\n" +
+ " 0.00\n" +
+ " 496.00\n" +
+ " 75.04\n" +
+ " 571.04\n" +
+ " 571.04\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "";
+ zea1.setZUGFeRDXMLData(ownZUGFeRDXML.getBytes("UTF-8"));
+
+ ByteArrayOutputStream baos=new ByteArrayOutputStream();
+ zea1.disableAutoClose(true);
+ zea1.export(TARGET_PDF);
+ zea1.export(baos);
+ zea1.close();
+ String pdfContent=baos.toString("UTF-8");
+ assertFalse(pdfContent.indexOf("(via mustangproject.org")==-1);
+ assertFalse(pdfContent.indexOf("EN16931") == -1);
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // now check the contents (like MustangReaderTest)
+ ZUGFeRDImporter zi = new ZUGFeRDImporter();
+ zi.extract(TARGET_PDF);
+ // Reading ZUGFeRD
+
+ String amount = null;
+ String bic = null;
+ String iban = null;
+ String holder = null;
+ String ref = null;
+
+ if (zi.canParse()) {
+ zi.parse();
+ amount = zi.getAmount();
+ bic = zi.getBIC();
+ iban = zi.getIBAN();
+ holder = zi.getHolder();
+ ref = zi.getForeignReference();
+ }
+
+ assertEquals(amount, "571.04");
+ assertEquals(bic, "COBADEFFXXX");
+ assertEquals(iban, "DE88 2008 0000 0970 3757 00");
+ assertEquals(holder, "Bei Spiel GmbH");
+ assertEquals(ref, "RE-20171118/506");
+ }
/**
* The exporter test bases on @{code
* ./src/test/MustangGnuaccountingBeispielRE-20140703_502blanko.pdf}, adds
@@ -58,7 +303,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
* importer test (which is probably redundant) --> as only Name Ascending is
* supported for Test Unit sequence, I renamed the Exporter Test test-Z-Export
*/
- public void testCustomExport() throws Exception {
+ public void testCustomZF1Export() throws Exception {
final String TARGET_PDF = "./target/testout-MustangGnuaccountingBeispielRE-20170509_505custom.pdf";
// the writing part