diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-17 09:40:21 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-09-17 09:40:21 +0200 |
| commit | 8c1eb3246c8f738867b2ddeb44e48f8332633963 (patch) | |
| tree | 8022851746e742396a26e05a981ecc4e4579fa7f /tests | |
| parent | 8d5c72406c1848dc7ab83daf4702fa13ce754530 (diff) | |
validation tests for tax rates, cost centers, contacts
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/administration_rw_tests.cpp | 8 | ||||
| -rw-r--r-- | tests/administration_validation_tests.cpp | 331 |
2 files changed, 320 insertions, 19 deletions
diff --git a/tests/administration_rw_tests.cpp b/tests/administration_rw_tests.cpp index d69b7dd..aed3c52 100644 --- a/tests/administration_rw_tests.cpp +++ b/tests/administration_rw_tests.cpp @@ -54,7 +54,7 @@ TEST _administration_rw_taxrate(void) administration_reader_open_existing(test_file_path); { ASSERT_EQ(count+1, administration_tax_rate_count()); - ASSERT_EQ(1, administration_tax_rate_get_by_id(&pr, pw.id)); + ASSERT_EQ(A_ERR_SUCCESS, administration_tax_rate_get_by_id(&pr, pw.id)); ASSERT_MEM_EQ(&pw, &pr, sizeof(tax_rate)); } @@ -84,7 +84,7 @@ TEST _administration_rw_costcenter(void) administration_reader_open_existing(test_file_path); { ASSERT_EQ(count+1, administration_cost_center_count()); - ASSERT_EQ(1, administration_cost_center_get_by_id(&pr, pw.id)); + ASSERT_EQ(A_ERR_SUCCESS, administration_cost_center_get_by_id(&pr, pw.id)); ASSERT_MEM_EQ(&pw, &pr, sizeof(cost_center)); } @@ -112,7 +112,7 @@ TEST _administration_rw_project(void) administration_reader_open_existing(test_file_path); { ASSERT_EQ(count+1, administration_project_count()); - ASSERT_EQ(1, administration_project_get_by_id(&pr, pw.id)); + ASSERT_EQ(A_ERR_SUCCESS, administration_project_get_by_id(&pr, pw.id)); ASSERT_MEM_EQ(&pw, &pr, sizeof(project)); } @@ -146,7 +146,7 @@ TEST _administration_rw_contact(void) administration_reader_open_existing(test_file_path); { ASSERT_EQ(count+1, administration_contact_count()); - ASSERT_EQ(1, administration_contact_get_by_id(&pr, pw.id)); + ASSERT_EQ(A_ERR_SUCCESS, administration_contact_get_by_id(&pr, pw.id)); ASSERT_MEM_EQ(&pw, &pr, sizeof(contact)); } diff --git a/tests/administration_validation_tests.cpp b/tests/administration_validation_tests.cpp index a2fe46a..4b88e37 100644 --- a/tests/administration_validation_tests.cpp +++ b/tests/administration_validation_tests.cpp @@ -7,15 +7,17 @@ #include "strops.hpp" #include "administration.hpp" +// Project +////////////////// TEST _administration_validate_project_add(void) { administration_create_empty(""); project p1 = administration_project_create_empty(); - ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_MISSING_DESCRIPTION); + ASSERT_EQ(administration_project_add(p1), A_ERR_MISSING_DESCRIPTION); strops_copy(p1.description, "test project", sizeof(p1.description)); - ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_add(p1), A_ERR_SUCCESS); PASS(); } @@ -25,10 +27,10 @@ TEST _administration_validate_project_import(void) administration_create_empty(""); project p1 = administration_project_create_empty(); - ASSERT_EQ(administration_project_import(p1), a_err::A_ERR_MISSING_DESCRIPTION); + ASSERT_EQ(administration_project_import(p1), A_ERR_MISSING_DESCRIPTION); strops_copy(p1.description, "test project", sizeof(p1.description)); - ASSERT_EQ(administration_project_import(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_import(p1), A_ERR_SUCCESS); PASS(); } @@ -40,14 +42,15 @@ TEST _administration_validate_project_update(void) project p1 = administration_project_create_empty(); strops_copy(p1.description, "test project", sizeof(p1.description)); - ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_add(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_project_update(p1), A_ERR_SUCCESS); strops_copy(p1.description, "", sizeof(p1.description)); - ASSERT_EQ(administration_project_update(p1), a_err::A_ERR_MISSING_DESCRIPTION); + ASSERT_EQ(administration_project_update(p1), A_ERR_MISSING_DESCRIPTION); - strops_copy(p1.id, "-1", sizeof(p1.description)); + strops_copy(p1.id, "-1", sizeof(p1.id)); strops_copy(p1.description, "test project 2", sizeof(p1.description)); - ASSERT_EQ(administration_project_update(p1), a_err::A_ERR_NOT_FOUND); + ASSERT_EQ(administration_project_update(p1), A_ERR_NOT_FOUND); PASS(); } @@ -58,13 +61,13 @@ TEST _administration_validate_project_remove(void) project p1 = administration_project_create_empty(); strops_copy(p1.description, "test project", sizeof(p1.description)); - ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_add(p1), A_ERR_SUCCESS); - ASSERT_EQ(administration_project_remove(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_remove(p1), A_ERR_SUCCESS); - ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_SUCCESS); - strops_copy(p1.id, "-1", sizeof(p1.description)); - ASSERT_EQ(administration_project_remove(p1), a_err::A_ERR_NOT_FOUND); + ASSERT_EQ(administration_project_add(p1), A_ERR_SUCCESS); + strops_copy(p1.id, "-1", sizeof(p1.id)); + ASSERT_EQ(administration_project_remove(p1), A_ERR_NOT_FOUND); PASS(); } @@ -74,18 +77,316 @@ TEST _administration_validate_project_isvalid(void) administration_create_empty(""); project p1 = administration_project_create_empty(); - ASSERT_EQ(administration_project_is_valid(p1), a_err::A_ERR_MISSING_DESCRIPTION); + ASSERT_EQ(administration_project_is_valid(p1), A_ERR_MISSING_DESCRIPTION); strops_copy(p1.description, "test project", sizeof(p1.description)); - ASSERT_EQ(administration_project_is_valid(p1), a_err::A_ERR_SUCCESS); + ASSERT_EQ(administration_project_is_valid(p1), A_ERR_SUCCESS); PASS(); } +// Tax rate +////////////////// +TEST _administration_validate_taxrate_add(void) +{ + administration_create_empty(""); + tax_rate p1 = administration_tax_rate_create_empty(); + + ASSERT_EQ(administration_tax_rate_add(p1), A_ERR_SUCCESS); + + PASS(); +} + +TEST _administration_validate_taxrate_import(void) +{ + administration_create_empty(""); + tax_rate p1 = administration_tax_rate_create_empty(); + + ASSERT_EQ(administration_tax_rate_import(p1), A_ERR_SUCCESS); + + PASS(); +} + + +TEST _administration_validate_taxrate_update(void) +{ + administration_create_empty(""); + tax_rate p1 = administration_tax_rate_create_empty(); + + ASSERT_EQ(administration_tax_rate_add(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_tax_rate_update(p1), A_ERR_SUCCESS); + + strops_copy(p1.id, "-1", sizeof(p1.id)); + ASSERT_EQ(administration_tax_rate_update(p1), A_ERR_NOT_FOUND); + + PASS(); +} + +// Cost center +////////////////// +TEST _administration_validate_costcenter_add(void) +{ + administration_create_empty(""); + cost_center p1 = administration_cost_center_create_empty(); + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_SUCCESS); + + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_CODE_EXISTS); + strops_copy(p1.code, "", sizeof(p1.code)); + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_MISSING_CODE); + strops_copy(p1.description, "", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_MISSING_CODE|A_ERR_MISSING_DESCRIPTION); + + PASS(); +} + +TEST _administration_validate_costcenter_import(void) +{ + administration_create_empty(""); + cost_center p1 = administration_cost_center_create_empty(); + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_import(p1), A_ERR_SUCCESS); + + ASSERT_EQ(administration_cost_center_import(p1), A_ERR_CODE_EXISTS); + strops_copy(p1.code, "", sizeof(p1.code)); + ASSERT_EQ(administration_cost_center_import(p1), A_ERR_MISSING_CODE); + strops_copy(p1.description, "", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_import(p1), A_ERR_MISSING_CODE|A_ERR_MISSING_DESCRIPTION); + + PASS(); +} + + +TEST _administration_validate_costcenter_update(void) +{ + administration_create_empty(""); + cost_center p1 = administration_cost_center_create_empty(); + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_cost_center_update(p1), A_ERR_SUCCESS); + + strops_copy(p1.code, "", sizeof(p1.code)); + ASSERT_EQ(administration_cost_center_update(p1), A_ERR_MISSING_CODE); + strops_copy(p1.description, "", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_update(p1), A_ERR_MISSING_CODE|A_ERR_MISSING_DESCRIPTION); + + strops_copy(p1.id, "-1", sizeof(p1.id)); + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_update(p1), A_ERR_NOT_FOUND); + + PASS(); +} + +TEST _administration_validate_costcenter_isvalid(void) +{ + administration_create_empty(""); + cost_center p1 = administration_cost_center_create_empty(); + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + + ASSERT_EQ(administration_cost_center_is_valid(p1), A_ERR_SUCCESS); + + strops_copy(p1.code, "", sizeof(p1.code)); + ASSERT_EQ(administration_cost_center_is_valid(p1), A_ERR_MISSING_CODE); + + strops_copy(p1.code, "", sizeof(p1.code)); + strops_copy(p1.description, "", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_is_valid(p1), A_ERR_MISSING_CODE|A_ERR_MISSING_DESCRIPTION); + + strops_copy(p1.code, "TEST", sizeof(p1.code)); + strops_copy(p1.description, "description", sizeof(p1.description)); + ASSERT_EQ(administration_cost_center_add(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_cost_center_is_valid(p1), A_ERR_CODE_EXISTS); + + PASS(); +} + + +// Contact +////////////////// +TEST _administration_validate_contact_add(void) +{ + administration_create_empty(""); + contact p1 = administration_contact_create_empty(); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + + ASSERT_EQ(administration_contact_add(p1), A_ERR_SUCCESS); + + strops_copy(p1.name, "", sizeof(p1.name)); + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME); + strops_copy(p1.address.address1, "", sizeof(p1.address.address1)); + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1); + strops_copy(p1.address.city, "", sizeof(p1.address.city)); + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY); + strops_copy(p1.address.postal, "", sizeof(p1.address.postal)); + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL); + strops_copy(p1.address.country_code, "", sizeof(p1.address.country_code)); + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE); + + p1.type = contact_type::CONTACT_BUSINESS; + ASSERT_EQ(administration_contact_add(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY| + A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE|A_ERR_MISSING_TAXID|A_ERR_MISSING_BUSINESSID); + + PASS(); +} + +TEST _administration_validate_contact_import(void) +{ + + administration_create_empty(""); + contact p1 = administration_contact_create_empty(); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + + ASSERT_EQ(administration_contact_import(p1), A_ERR_SUCCESS); + + strops_copy(p1.name, "", sizeof(p1.name)); + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME); + strops_copy(p1.address.address1, "", sizeof(p1.address.address1)); + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1); + strops_copy(p1.address.city, "", sizeof(p1.address.city)); + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY); + strops_copy(p1.address.postal, "", sizeof(p1.address.postal)); + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL); + strops_copy(p1.address.country_code, "", sizeof(p1.address.country_code)); + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE); + + p1.type = contact_type::CONTACT_BUSINESS; + ASSERT_EQ(administration_contact_import(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY| + A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE|A_ERR_MISSING_TAXID|A_ERR_MISSING_BUSINESSID); + + PASS(); +} + + +TEST _administration_validate_contact_update(void) +{ + administration_create_empty(""); + contact p1 = administration_contact_create_empty(); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + + ASSERT_EQ(administration_contact_add(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_contact_update(p1), A_ERR_SUCCESS); + + strops_copy(p1.name, "", sizeof(p1.name)); + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME); + strops_copy(p1.address.address1, "", sizeof(p1.address.address1)); + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1); + strops_copy(p1.address.city, "", sizeof(p1.address.city)); + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY); + strops_copy(p1.address.postal, "", sizeof(p1.address.postal)); + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL); + strops_copy(p1.address.country_code, "", sizeof(p1.address.country_code)); + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE); + + p1.type = contact_type::CONTACT_BUSINESS; + ASSERT_EQ(administration_contact_update(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY| + A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE|A_ERR_MISSING_TAXID|A_ERR_MISSING_BUSINESSID); + + strops_copy(p1.id, "-1", sizeof(p1.id)); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + ASSERT_EQ(administration_contact_update(p1), A_ERR_NOT_FOUND); + + PASS(); +} + +TEST _administration_validate_contact_remove(void) +{ + administration_create_empty(""); + contact p1 = administration_contact_create_empty(); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + + ASSERT_EQ(administration_contact_add(p1), A_ERR_SUCCESS); + + ASSERT_EQ(administration_contact_remove(p1), A_ERR_SUCCESS); + + ASSERT_EQ(administration_contact_add(p1), A_ERR_SUCCESS); + strops_copy(p1.id, "-1", sizeof(p1.id)); + ASSERT_EQ(administration_contact_remove(p1), A_ERR_NOT_FOUND); + + PASS(); +} + +TEST _administration_validate_contact_isvalid(void) +{ + administration_create_empty(""); + contact p1 = administration_contact_create_empty(); + strops_copy(p1.name, "John Johnsson", sizeof(p1.name)); + strops_copy(p1.address.address1, "Address 1", sizeof(p1.address.address1)); + strops_copy(p1.address.country_code, "FR", sizeof(p1.address.country_code)); + strops_copy(p1.address.city, "Paris", sizeof(p1.address.city)); + strops_copy(p1.address.postal, "12345", sizeof(p1.address.postal)); + p1.type = contact_type::CONTACT_CONSUMER; + + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_SUCCESS); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_SUCCESS); + + strops_copy(p1.name, "", sizeof(p1.name)); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME); + strops_copy(p1.address.address1, "", sizeof(p1.address.address1)); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1); + strops_copy(p1.address.city, "", sizeof(p1.address.city)); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY); + strops_copy(p1.address.postal, "", sizeof(p1.address.postal)); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL); + strops_copy(p1.address.country_code, "", sizeof(p1.address.country_code)); + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY|A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE); + + p1.type = contact_type::CONTACT_BUSINESS; + ASSERT_EQ(administration_contact_is_valid(p1), A_ERR_MISSING_NAME|A_ERR_MISSING_ADDRESS1|A_ERR_MISSING_CITY| + A_ERR_MISSING_POSTAL|A_ERR_MISSING_COUNTRYCODE|A_ERR_MISSING_TAXID|A_ERR_MISSING_BUSINESSID); + + PASS(); +} + + SUITE(administration_validate) { RUN_TEST(_administration_validate_project_add); RUN_TEST(_administration_validate_project_import); RUN_TEST(_administration_validate_project_update); RUN_TEST(_administration_validate_project_remove); RUN_TEST(_administration_validate_project_isvalid); + + RUN_TEST(_administration_validate_taxrate_add); + RUN_TEST(_administration_validate_taxrate_import); + RUN_TEST(_administration_validate_taxrate_update); + + RUN_TEST(_administration_validate_costcenter_add); + RUN_TEST(_administration_validate_costcenter_import); + RUN_TEST(_administration_validate_costcenter_update); + RUN_TEST(_administration_validate_costcenter_isvalid); + + RUN_TEST(_administration_validate_contact_add); + RUN_TEST(_administration_validate_contact_import); + RUN_TEST(_administration_validate_contact_update); + RUN_TEST(_administration_validate_contact_remove); + RUN_TEST(_administration_validate_contact_isvalid); }
\ No newline at end of file |
