summaryrefslogtreecommitdiff
path: root/tests/administration_validation_tests.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-17 09:40:21 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-17 09:40:21 +0200
commit8c1eb3246c8f738867b2ddeb44e48f8332633963 (patch)
tree8022851746e742396a26e05a981ecc4e4579fa7f /tests/administration_validation_tests.cpp
parent8d5c72406c1848dc7ab83daf4702fa13ce754530 (diff)
validation tests for tax rates, cost centers, contacts
Diffstat (limited to 'tests/administration_validation_tests.cpp')
-rw-r--r--tests/administration_validation_tests.cpp331
1 files changed, 316 insertions, 15 deletions
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