summaryrefslogtreecommitdiff
path: root/tests/peppol_write_tests.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-21 20:37:34 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-21 20:37:34 +0200
commit051666a90b2c4779efdc8cfb49ab7316c94b58b0 (patch)
tree041ad949685731db2b824f502f0a7a8e64715517 /tests/peppol_write_tests.cpp
parent946a0c939c0cb7c28c9af9b7e4e2b20c45dd3702 (diff)
peppol file importing + invoice rw tests
Diffstat (limited to 'tests/peppol_write_tests.cpp')
-rw-r--r--tests/peppol_write_tests.cpp123
1 files changed, 0 insertions, 123 deletions
diff --git a/tests/peppol_write_tests.cpp b/tests/peppol_write_tests.cpp
index c00b53b..fb74ed7 100644
--- a/tests/peppol_write_tests.cpp
+++ b/tests/peppol_write_tests.cpp
@@ -1,126 +1,3 @@
-#include <malloc.h>
-
-#include "zip.h"
-#include "xml.h"
-
-char* validation_file = "libs\\PEPPOL-EN16931-UBL.sch";
-char* result_file = "build\\invoice_report.xml";
-char* extract_dir = "build\\extracted";
-
-static contact _create_nl_business()
-{
- contact pw = administration_contact_create_empty();
- strops_copy(pw.name, "Piet Pinda", sizeof(pw.name));
- strops_copy(pw.address.address1, "Address 1", sizeof(pw.address.address1));
- strops_copy(pw.address.country_code, "NL", sizeof(pw.address.country_code));
- strops_copy(pw.address.city, "Amsterdam", sizeof(pw.address.city));
- strops_copy(pw.address.postal, "1234AA", sizeof(pw.address.postal));
- strops_copy(pw.taxid, "T123", sizeof(pw.taxid));
- strops_copy(pw.businessid, "B321", sizeof(pw.businessid));
- strops_copy(pw.email, "test@test.com", sizeof(pw.email));
- pw.type = contact_type::CONTACT_BUSINESS;
- return pw;
-}
-
-static contact _create_nl_consumer()
-{
- contact pw = _create_nl_business();
- pw.type = contact_type::CONTACT_CONSUMER;
- return pw;
-}
-
-static billing_item _create_bi1(invoice *inv)
-{
- billing_item item = administration_billing_item_create_empty();
- item.amount = 1;
- item.amount_is_percentage = 0;
- strops_copy(item.description, "Shampoo", MAX_LEN_LONG_DESC);
- item.net_per_item = 10.00f;
- item.discount = 2.0f;
- item.discount_is_percentage = 0;
-
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration_tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops_copy(item.tax_rate_id, rand_rate.id, MAX_LEN_ID);
-
- return item;
-}
-
-static billing_item _create_bi2(invoice *inv)
-{
- billing_item item = administration_billing_item_create_empty();
- item.amount = 2;
- item.amount_is_percentage = 0;
- strops_copy(item.description, "Soap", MAX_LEN_LONG_DESC);
- item.net_per_item = 5.00f;
- item.discount = 5.0f;
- item.discount_is_percentage = 1;
-
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration_tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops_copy(item.tax_rate_id, rand_rate.id, MAX_LEN_ID);
-
- return item;
-}
-
-static bool _test_peppol_file(char* id)
-{
- bool result = 1;
-
- zip_extract(test_file_path, extract_dir, 0, 0);
-
- char command[200];
- snprintf(command, 200, "java -jar libs\\schxslt-cli.jar -d %s\\%s.xml -s %s -o %s > NUL 2>&1",
- extract_dir, id, validation_file, result_file);
- system(command);
-
- FILE* file = fopen(result_file, "r");
- struct xml_document* document = xml_open_document(file);
-
- struct xml_node* root = xml_document_root(document);
-
- size_t num_children = xml_node_children(root);
- for (int i = 0; i < num_children; i++)
- {
- struct xml_node* node = xml_node_child(root, i);
-
- char* name = (char*)xml_easy_name(node);
-
- if (strcmp(name, "svrl:failed-assert") == 0) {
- struct xml_node* text_node = xml_easy_child(node, (uint8_t *)"svrl:text", 0);
- char* content = (char*)xml_easy_content(text_node);
-
- size_t num_attributes = xml_node_attributes(node);
- for (int x = 0; x < num_attributes; x++)
- {
- struct xml_string* attr_name = xml_node_attribute_name(node, x);
- size_t b_length = xml_string_length(attr_name);
- uint8_t* b_buffer = (uint8_t*)alloca((b_length + 1) * sizeof(uint8_t));
- xml_string_copy(attr_name, b_buffer, b_length);
- b_buffer[b_length] = 0;
-
- if (strcmp((char*)b_buffer, "location") == 0) {
- struct xml_string* attr_content = xml_node_attribute_content(node, x);
-
- size_t a_length = xml_string_length(attr_content);
- uint8_t* a_buffer = (uint8_t*)alloca((a_length + 1) * sizeof(uint8_t));
- xml_string_copy(attr_content, a_buffer, a_length);
- a_buffer[a_length] = 0;
-
- printf("FAILURE: %s @ %s\n", content, (char*)a_buffer);
- }
- }
-
- result = 0;
- }
- }
-
- return result;
-}
//////////////////
// Netherlands