From 9091a313b2bb2dafd2919fddb989745ddafa15d9 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Tue, 16 Sep 2025 19:08:05 +0200 Subject: error reporting for administration crud functions --- tests/administration_validation_tests.cpp | 91 +++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 tests/administration_validation_tests.cpp (limited to 'tests/administration_validation_tests.cpp') 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 +#include + +#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 -- cgit v1.2.3-70-g09d2