diff options
Diffstat (limited to 'tests/peppol_write_tests.cpp')
| -rw-r--r-- | tests/peppol_write_tests.cpp | 123 |
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 |
