summaryrefslogtreecommitdiff
path: root/tests/administration_validation_tests.cpp
diff options
context:
space:
mode:
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