summaryrefslogtreecommitdiff
path: root/tests/administration_validation_tests.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-16 19:08:05 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-16 19:08:05 +0200
commit9091a313b2bb2dafd2919fddb989745ddafa15d9 (patch)
treed3448a0e103fbbe0e14457b07e2e0a77b2f0f6da /tests/administration_validation_tests.cpp
parentbb55b2341c53174ed53a70855ef63bb20c8dd814 (diff)
error reporting for administration crud functions
Diffstat (limited to 'tests/administration_validation_tests.cpp')
-rw-r--r--tests/administration_validation_tests.cpp91
1 files changed, 91 insertions, 0 deletions
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