add test for devices_manager_get_by_id & devices_manager_update
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
NADAL Jean-Baptiste
2020-01-07 17:29:55 +01:00
parent 87751f24b7
commit b5405fbe81
18 changed files with 573 additions and 364 deletions

View File

@@ -1,7 +1,7 @@
/*!
* rest_handler.c
* test_device.c
*
* Copyright (c) 2015-2019, NADAL Jean-Baptiste. All rights reserved.
* Copyright (c) 2015-2020, NADAL Jean-Baptiste. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,7 +36,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")
{
@@ -52,21 +53,39 @@ TEST("sprinkler - create set_state remove.")
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);
// ret = set_sprinkler_state(dm, 1, true);
// 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);
ASSERT_EQUAL_STR(sprinkler_serialized, kDeviceTestNameFalse);
free(sprinkler_serialized);
// 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);
/* 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);
ASSERT_EQUAL_STR(sprinkler_serialized, kDeviceTestNameTrue);
free(sprinkler_serialized);
// Free the Object.
devices_manager_free(dm);
}