diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/administration_rw_tests.cpp | 40 | ||||
| -rw-r--r-- | tests/administration_validation_tests.cpp | 91 | ||||
| -rw-r--r-- | tests/main.cpp | 12 |
3 files changed, 133 insertions, 10 deletions
diff --git a/tests/administration_rw_tests.cpp b/tests/administration_rw_tests.cpp index 6d57596..8f38046 100644 --- a/tests/administration_rw_tests.cpp +++ b/tests/administration_rw_tests.cpp @@ -1,6 +1,7 @@ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> +#include <stdlib.h> #include "greatest.h" #include "timer.h" @@ -10,7 +11,14 @@ #include "administration_reader.hpp" #include "administration_writer.hpp" -char* test_file_path = "C:\\Users\\aldri\\Desktop\\Vault\\Projects\\accounting\\build\\test.openbook"; +#ifdef _WIN32 + #include <io.h> // for _unlink + #define unlink _unlink +#else + #include <unistd.h> // for unlink +#endif + +char* test_file_path = "build\\test.openbook"; static void setup_cb(void *data) { (void)data; @@ -145,6 +153,26 @@ TEST _administration_rw_contact(void) PASS(); } +TEST _administration_rw_info(void) +{ + administration_writer_create(); + + s32 next_id, next_sequence_number; + administration_create_empty(test_file_path); + { + next_id = administration_get_next_id(); + next_sequence_number = administration_get_next_sequence_number(); + } + + administration_reader_open_existing(test_file_path); + { + ASSERT_EQ(next_id, administration_get_next_id()); + ASSERT_EQ(next_sequence_number, administration_get_next_sequence_number()); + } + + PASS(); +} + SUITE(administration_rw) { SET_SETUP(setup_cb, NULL); SET_TEARDOWN(teardown_cb, NULL); @@ -153,13 +181,5 @@ SUITE(administration_rw) { RUN_TEST(_administration_rw_costcenter); RUN_TEST(_administration_rw_project); RUN_TEST(_administration_rw_contact); -} - -GREATEST_MAIN_DEFS(); -int main(int argc, char **argv) { - timer_lib_initialize(); - - GREATEST_MAIN_BEGIN(); - RUN_SUITE(administration_rw); - GREATEST_MAIN_END(); + RUN_TEST(_administration_rw_info); }
\ No newline at end of file diff --git a/tests/administration_validation_tests.cpp b/tests/administration_validation_tests.cpp new file mode 100644 index 0000000..a2fe46a --- /dev/null +++ b/tests/administration_validation_tests.cpp @@ -0,0 +1,91 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "greatest.h" +#include "timer.h" + +#include "strops.hpp" +#include "administration.hpp" + +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); + + strops_copy(p1.description, "test project", sizeof(p1.description)); + ASSERT_EQ(administration_project_add(p1), a_err::A_ERR_SUCCESS); + + PASS(); +} + +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); + + strops_copy(p1.description, "test project", sizeof(p1.description)); + ASSERT_EQ(administration_project_import(p1), a_err::A_ERR_SUCCESS); + + PASS(); +} + + +TEST _administration_validate_project_update(void) +{ + administration_create_empty(""); + 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); + + strops_copy(p1.description, "", sizeof(p1.description)); + ASSERT_EQ(administration_project_update(p1), a_err::A_ERR_MISSING_DESCRIPTION); + + strops_copy(p1.id, "-1", sizeof(p1.description)); + strops_copy(p1.description, "test project 2", sizeof(p1.description)); + ASSERT_EQ(administration_project_update(p1), a_err::A_ERR_NOT_FOUND); + + PASS(); +} + +TEST _administration_validate_project_remove(void) +{ + administration_create_empty(""); + 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_remove(p1), a_err::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); + + PASS(); +} + +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); + + strops_copy(p1.description, "test project", sizeof(p1.description)); + ASSERT_EQ(administration_project_is_valid(p1), a_err::A_ERR_SUCCESS); + + 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); +}
\ No newline at end of file diff --git a/tests/main.cpp b/tests/main.cpp new file mode 100644 index 0000000..fd3557a --- /dev/null +++ b/tests/main.cpp @@ -0,0 +1,12 @@ +#include "administration_rw_tests.cpp" +#include "administration_validation_tests.cpp" + +GREATEST_MAIN_DEFS(); +int main(int argc, char **argv) { + timer_lib_initialize(); + + GREATEST_MAIN_BEGIN(); + RUN_SUITE(administration_rw); + RUN_SUITE(administration_validate); + GREATEST_MAIN_END(); +}
\ No newline at end of file |
