sprinkler: Add error test case.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
NADAL Jean-Baptiste
2020-01-07 18:13:19 +01:00
parent b5405fbe81
commit 4759246744
2 changed files with 152 additions and 6 deletions

View File

@@ -39,6 +39,8 @@ QUNIT_START("Test Data Model");
#define kDeviceTestNameFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false }"
#define kDeviceTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true }"
/*--------------------------------------------------------------------------*/
TEST("devices_manager create and free")
{
devices_manager_t *dm;
@@ -48,6 +50,8 @@ TEST("devices_manager create and free")
devices_manager_free(dm);
}
/*--------------------------------------------------------------------------*/
TEST("sprinkler - create set_state remove.")
{
struct json_object *root_node;
@@ -59,7 +63,7 @@ TEST("sprinkler - create set_state remove.")
// Create a New Entry.
root_node = json_object_new_object();
json_object_object_add(root_node, k_entry_name, json_object_new_string("test_name"));
json_object_object_add(root_node, k_entry_name, json_object_new_string("test_name"));
ret = devices_manager_create(dm, kSprinklerEntry, root_node);
/* Clean the json object. */
@@ -73,12 +77,13 @@ TEST("sprinkler - create set_state remove.")
// Change the State.
root_node = json_object_new_object();
json_object_object_add(root_node, k_entry_state, json_object_new_boolean(true));
json_object_object_add(root_node, k_entry_id, json_object_new_int(1));
devices_manager_update(dm, kSprinklerEntry, root_node);
json_object_object_add(root_node, k_entry_state, json_object_new_boolean(true));
json_object_object_add(root_node, k_entry_id, json_object_new_int(1));
ret = devices_manager_update(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, 0);
/* Clean the json object. */
json_object_put(root_node);
ASSERT_EQUAL_INT(ret, 0);
// Check Objets.
sprinkler_serialized = devices_manager_get_by_id(dm, kSprinklerEntry, 1);
@@ -89,6 +94,131 @@ TEST("sprinkler - create set_state remove.")
devices_manager_free(dm);
}
/*--------------------------------------------------------------------------*/
TEST("sprinkler - create - Error case")
{
struct json_object *root_node;
devices_manager_t *dm;
int ret;
dm = devices_manager_new();
ASSERT_NOT_NULL(dm);
// Create a New Entry.
root_node = json_object_new_object();
// dm is NULL
ret = devices_manager_create(NULL, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
// unknown capability
ret = devices_manager_create(dm, "", root_node);
ASSERT_EQUAL_INT(ret, -1);
// json node is null
ret = devices_manager_create(dm, kSprinklerEntry, NULL);
ASSERT_EQUAL_INT(ret, -1);
// parameter is missing.
ret = devices_manager_create(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
json_object_put(root_node);
// Free the Object.
devices_manager_free(dm);
}
/*--------------------------------------------------------------------------*/
TEST("sprinkler - get_by_id - Error case")
{
struct json_object *root_node;
devices_manager_t *dm;
int ret;
char *sprinkler_serialized;
dm = devices_manager_new();
ASSERT_NOT_NULL(dm);
// Create a New Entry.
root_node = json_object_new_object();
json_object_object_add(root_node, k_entry_name, json_object_new_string("test_name"));
ret = devices_manager_create(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, 0);
// dm is NULL
sprinkler_serialized = devices_manager_get_by_id(NULL, kSprinklerEntry, 1);
ASSERT_NULL(sprinkler_serialized);
// unknown capability
sprinkler_serialized = devices_manager_get_by_id(dm, "", 1);
ASSERT_NULL(sprinkler_serialized);
// unknown id
sprinkler_serialized = devices_manager_get_by_id(dm, kSprinklerEntry, 7);
ASSERT_NULL(sprinkler_serialized);
json_object_put(root_node);
// Free the Object.
devices_manager_free(dm);
}
/*--------------------------------------------------------------------------*/
TEST("sprinkler - update - Error case")
{
struct json_object *root_node;
devices_manager_t *dm;
int ret;
char *sprinkler_serialized;
dm = devices_manager_new();
ASSERT_NOT_NULL(dm);
// Create a New Entry.
root_node = json_object_new_object();
json_object_object_add(root_node, k_entry_name, json_object_new_string("test_name"));
ret = devices_manager_create(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, 0);
json_object_put(root_node);
// Create an update Entry.
root_node = json_object_new_object();
// dm is NULL
ret = devices_manager_update(NULL, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
// unknown capability
ret = devices_manager_update(dm, "", root_node);
ASSERT_EQUAL_INT(ret, -1);
// json is NULL
ret = devices_manager_update(dm, kSprinklerEntry, NULL);
ASSERT_EQUAL_INT(ret, -1);
// id is missing
ret = devices_manager_update(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
// Id is not valid.
json_object_object_add(root_node, k_entry_id, json_object_new_int(7));
ret = devices_manager_update(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
json_object_put(root_node);
// id valid and state is missing
root_node = json_object_new_object();
json_object_object_add(root_node, k_entry_id, json_object_new_int(1));
ret = devices_manager_update(dm, kSprinklerEntry, root_node);
ASSERT_EQUAL_INT(ret, -1);
json_object_put(root_node);
// Free the Object.
devices_manager_free(dm);
}
#if 0
devices_manager_t