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