sprinkler: Add error test case.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -198,7 +198,11 @@ char *devices_manager_get(devices_manager_t *dm, const char *capability)
|
|||||||
|
|
||||||
char *devices_manager_get_by_id(devices_manager_t *dm, const char *capability, uint32_t id)
|
char *devices_manager_get_by_id(devices_manager_t *dm, const char *capability, uint32_t id)
|
||||||
{
|
{
|
||||||
const char *output = NULL;
|
char *output = NULL;
|
||||||
|
|
||||||
|
// Sanity Checks
|
||||||
|
if (dm == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
if (capability == kOutletEntry)
|
if (capability == kOutletEntry)
|
||||||
{
|
{
|
||||||
@@ -265,6 +269,10 @@ int devices_manager_set_state(devices_manager_t *dm, const char *capability, int
|
|||||||
|
|
||||||
int devices_manager_create(devices_manager_t *dm, const char *capability, struct json_object *node)
|
int devices_manager_create(devices_manager_t *dm, const char *capability, struct json_object *node)
|
||||||
{
|
{
|
||||||
|
// Sanity checks
|
||||||
|
if ((dm == NULL) || (node ==NULL))
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (capability == kOutletEntry)
|
if (capability == kOutletEntry)
|
||||||
{
|
{
|
||||||
return create_outlet(dm, node);
|
return create_outlet(dm, node);
|
||||||
@@ -288,11 +296,19 @@ int devices_manager_update(devices_manager_t *dm, const char *capability, struct
|
|||||||
int32_t id = -1;
|
int32_t id = -1;
|
||||||
struct json_object *value_node;
|
struct json_object *value_node;
|
||||||
|
|
||||||
|
if ((dm == NULL) || (node == NULL))
|
||||||
|
return -1;
|
||||||
|
|
||||||
// id
|
// id
|
||||||
if (json_object_object_get_ex(node, k_entry_id, &value_node))
|
if (json_object_object_get_ex(node, k_entry_id, &value_node))
|
||||||
{
|
{
|
||||||
id = json_object_get_int(value_node);
|
id = json_object_get_int(value_node);
|
||||||
}
|
}
|
||||||
|
// state
|
||||||
|
if (!json_object_object_get_ex(node, k_entry_state, &value_node))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// Sanity checks.
|
// Sanity checks.
|
||||||
if (id == -1)
|
if (id == -1)
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ QUNIT_START("Test Data Model");
|
|||||||
#define kDeviceTestNameFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false }"
|
#define kDeviceTestNameFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false }"
|
||||||
#define kDeviceTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true }"
|
#define kDeviceTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true }"
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
TEST("devices_manager create and free")
|
TEST("devices_manager create and free")
|
||||||
{
|
{
|
||||||
devices_manager_t *dm;
|
devices_manager_t *dm;
|
||||||
@@ -48,6 +50,8 @@ TEST("devices_manager create and free")
|
|||||||
devices_manager_free(dm);
|
devices_manager_free(dm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
TEST("sprinkler - create set_state remove.")
|
TEST("sprinkler - create set_state remove.")
|
||||||
{
|
{
|
||||||
struct json_object *root_node;
|
struct json_object *root_node;
|
||||||
@@ -75,10 +79,11 @@ TEST("sprinkler - create set_state remove.")
|
|||||||
root_node = json_object_new_object();
|
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_state, json_object_new_boolean(true));
|
||||||
json_object_object_add(root_node, k_entry_id, json_object_new_int(1));
|
json_object_object_add(root_node, k_entry_id, json_object_new_int(1));
|
||||||
devices_manager_update(dm, kSprinklerEntry, root_node);
|
ret = devices_manager_update(dm, kSprinklerEntry, root_node);
|
||||||
|
ASSERT_EQUAL_INT(ret, 0);
|
||||||
|
|
||||||
/* Clean the json object. */
|
/* Clean the json object. */
|
||||||
json_object_put(root_node);
|
json_object_put(root_node);
|
||||||
ASSERT_EQUAL_INT(ret, 0);
|
|
||||||
|
|
||||||
// Check Objets.
|
// Check Objets.
|
||||||
sprinkler_serialized = devices_manager_get_by_id(dm, kSprinklerEntry, 1);
|
sprinkler_serialized = devices_manager_get_by_id(dm, kSprinklerEntry, 1);
|
||||||
@@ -89,6 +94,131 @@ TEST("sprinkler - create set_state remove.")
|
|||||||
devices_manager_free(dm);
|
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
|
#if 0
|
||||||
devices_manager_t
|
devices_manager_t
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user