summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/administration_rw_tests.cpp40
-rw-r--r--tests/administration_validation_tests.cpp91
-rw-r--r--tests/main.cpp12
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