summaryrefslogtreecommitdiff
path: root/tests/administration_rw_tests.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 09:47:26 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 09:47:26 +0200
commit58edcf619ee9d589dd7b54b8a9cbd4271740c13b (patch)
treefccd23132f96eb3f5da3b530b78ad826f534687f /tests/administration_rw_tests.cpp
parentbd3f2b84742067d0b9049b9f42f2266f94dbb0f9 (diff)
fix shipping info r/w issue. fix date r/w timezone issue.
Diffstat (limited to 'tests/administration_rw_tests.cpp')
-rw-r--r--tests/administration_rw_tests.cpp51
1 files changed, 48 insertions, 3 deletions
diff --git a/tests/administration_rw_tests.cpp b/tests/administration_rw_tests.cpp
index 9cb199a..e1582f7 100644
--- a/tests/administration_rw_tests.cpp
+++ b/tests/administration_rw_tests.cpp
@@ -209,9 +209,9 @@ TEST _assert_invoices_are_equal(invoice inv, invoice invr)
ASSERT_EQ(invr.status, inv.status);
ASSERT_EQ(invr.is_outgoing, inv.is_outgoing);
ASSERT_MEM_EQ(&invr.payment_means, &inv.payment_means, sizeof(payment_information));
- ASSERT_MEM_EQ(&invr.supplier, &inv.supplier, sizeof(contact));
- ASSERT_MEM_EQ(&invr.customer, &inv.customer, sizeof(contact));
- ASSERT_MEM_EQ(&invr.addressee, &inv.addressee, sizeof(contact));
+ ASSERT_MEM_EQ(&invr.supplier, &inv.supplier, sizeof(delivery_info));
+ ASSERT_MEM_EQ(&invr.customer, &inv.customer, sizeof(delivery_info));
+ ASSERT_MEM_EQ(&invr.addressee, &inv.addressee, sizeof(delivery_info));
PASS();
}
@@ -302,6 +302,50 @@ TEST _administration_rw_b2c_invoice(void)
PASS();
}
+
+TEST _administration_rw_b2b2c_invoice(void)
+{
+ u32 count;
+ invoice inv;
+ invoice invr;
+
+ administration_writer_create();
+
+ administration_create_default(test_file_path);
+ {
+ inv = administration_invoice_create_empty();
+ inv.supplier = _create_nl_business();
+ inv.customer = _create_nl_business();
+ strops_copy(inv.addressee.name, "Piet Pinda", sizeof(inv.addressee.name));
+ inv.addressee.address = _create_nl_consumer().address;
+ inv.is_triangulation = 1;
+ inv.is_outgoing = 1;
+ inv.status = invoice_status::INVOICE_CONCEPT;
+ inv.issued_at = time(NULL);
+ inv.delivered_at = inv.issued_at;
+ inv.expires_at = inv.issued_at + 1000;
+
+ administration_billing_item_add_to_invoice(&inv, _create_bi3(&inv));
+ administration_billing_item_add_to_invoice(&inv, _create_bi4(&inv));
+ administration_billing_item_add_to_invoice(&inv, _create_bi5(&inv));
+ administration_billing_item_add_to_invoice(&inv, _create_bi6(&inv));
+
+ count = administration_invoice_count();
+ ASSERT_EQ(administration_invoice_add(&inv), A_ERR_SUCCESS);
+ ASSERT_EQ(count+1, administration_invoice_count());
+ }
+
+ administration_reader_open_existing(test_file_path);
+ {
+ ASSERT_EQ(count+1, administration_invoice_count());
+ ASSERT_EQ(A_ERR_SUCCESS, administration_invoice_get_by_id(&invr, inv.id));
+
+ CHECK_CALL(_assert_invoices_are_equal(inv, invr));
+ }
+
+ PASS();
+}
+
SUITE(administration_rw) {
SET_SETUP(setup_cb, NULL);
SET_TEARDOWN(teardown_cb, NULL);
@@ -313,4 +357,5 @@ SUITE(administration_rw) {
RUN_TEST(_administration_rw_info);
RUN_TEST(_administration_rw_b2b_invoice);
RUN_TEST(_administration_rw_b2c_invoice);
+ RUN_TEST(_administration_rw_b2b2c_invoice);
} \ No newline at end of file