From 367d4aea64d523780cf9dccb2283a52b43f86796 Mon Sep 17 00:00:00 2001 From: NADAL Jean-Baptiste Date: Wed, 8 Jan 2020 14:21:10 +0100 Subject: [PATCH] Add test for outlets --- src/devices/devices_manager_internal.c | 37 +++++++++++++++++++++++--- src/tests/test_devices.c | 1 + src/tests/test_main.c | 13 ++------- src/tests/test_outlet.c | 13 +++++---- src/tests/test_shutter.c | 9 +++---- src/tests/test_sprinkler.c | 8 +++--- 6 files changed, 52 insertions(+), 29 deletions(-) diff --git a/src/devices/devices_manager_internal.c b/src/devices/devices_manager_internal.c index 4a5fe9f..982b43a 100644 --- a/src/devices/devices_manager_internal.c +++ b/src/devices/devices_manager_internal.c @@ -116,16 +116,45 @@ int create_outlet(devices_manager_t *dm, struct json_object *node) int remove_outlet(devices_manager_t *dm, uint16_t id) { -#warning "TODO" - return 0; + qlist_obj_t obj; + outlet_dio_t *outlet_dio; + int position = 0; + + memset((void *)&obj, 0, sizeof(obj)); + + while (qlist_getnext(dm->outlets, &obj, true)) + { + outlet_dio = obj.data; + if (outlet_dio->device->id == id) + { + qlist_removeat(dm->outlets, position); + return 0; + } + position++; + } + + return -1; } /*--------------------------------------------------------------------------*/ int update_outlet(devices_manager_t *dm, uint16_t id, struct json_object *node) { -#warning "TODO" - return 0; + qlist_obj_t obj; + outlet_dio_t *outlet_dio; + + memset((void *)&obj, 0, sizeof(obj)); + + while (qlist_getnext(dm->outlets, &obj, false)) + { + outlet_dio = obj.data; + if (outlet_dio->device->id == id) + { + return outlet_dio_from_json(outlet_dio, node); + } + } + + return -1; } /*--------------------------------------------------------------------------*/ diff --git a/src/tests/test_devices.c b/src/tests/test_devices.c index ef727c6..8a19e63 100644 --- a/src/tests/test_devices.c +++ b/src/tests/test_devices.c @@ -48,6 +48,7 @@ void device_create_set_state_remove(const char *capability, const char *test_nam // Check Objets. device_serialized = devices_manager_get_by_id(dm, capability, 1); + // printf ("device: %s\n", device_serialized); ASSERT_EQUAL_STR(device_serialized, test_name_false); free(device_serialized); diff --git a/src/tests/test_main.c b/src/tests/test_main.c index 9557c8a..5b3b688 100644 --- a/src/tests/test_main.c +++ b/src/tests/test_main.c @@ -38,7 +38,7 @@ QUNIT_START("Test Data Model"); /*--------------------------------------------------------------------------*/ -TEST("devices_manager create and free") +TEST("devices_manager create and free\t") { devices_manager_t *dm; @@ -50,27 +50,18 @@ TEST("devices_manager create and free") #include "test_devices.c" #include "test_sprinkler.c" #include "test_shutter.c" -//#include "test_outlet.c" +#include "test_outlet.c" #if 0 -devices_manager_t - -kOutletEntry -kShutterEntry -kSprinklerEntry - extern int devices_manager_load(devices_manager_t *dm, char *config_path); extern int devices_manager_save(devices_manager_t *dm); extern char *devices_manager_get(devices_manager_t *dm, const char *capability); -extern char *devices_manager_get_by_id(devices_manager_t *dm, const char *capability, uint32_t id); extern int devices_manager_set(devices_manager_t *dm, const char *capability, struct json_object *node); extern int devices_manager_set_state(devices_manager_t *dm, const char *capability, int id, bool state); -extern int devices_manager_create(devices_manager_t *dm, const char *capability, struct json_object *node); -extern int devices_manager_update(devices_manager_t *dm, const char *capability, struct json_object *node); extern int devices_manager_delete(devices_manager_t *dm, const char *capability, struct json_object *node); #endif diff --git a/src/tests/test_outlet.c b/src/tests/test_outlet.c index d22bf06..49c2cf7 100644 --- a/src/tests/test_outlet.c +++ b/src/tests/test_outlet.c @@ -26,30 +26,33 @@ // This is an independent project of an individual developer. Dear PVS-Studio, please check it. // PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com +#define kOutletTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }" +#define kOutletTestNameFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }" + /*--------------------------------------------------------------------------*/ -TEST("Outlet - create set_state remove.") +TEST("Outlet - create set_state remove\t") { - device_create_set_state_remove(kOutletEntry); + device_create_set_state_remove(kOutletEntry, kOutletTestNameTrue, kOutletTestNameFalse); } /*--------------------------------------------------------------------------*/ -TEST("Outlet - create - Error case") +TEST("Outlet - create - Error case\t") { device_create_error_case(kOutletEntry); } /*--------------------------------------------------------------------------*/ -TEST("Outlet - get_by_id - Error case") +TEST("Outlet - get_by_id - Error case\t") { device_get_by_id_error_case(kOutletEntry); } /*--------------------------------------------------------------------------*/ -TEST("Outlet - update - Error case") +TEST("Outlet - update - Error case\t") { device_get_by_id_error_case(kOutletEntry); } diff --git a/src/tests/test_shutter.c b/src/tests/test_shutter.c index c73e240..ef841b2 100644 --- a/src/tests/test_shutter.c +++ b/src/tests/test_shutter.c @@ -26,34 +26,33 @@ // This is an independent project of an individual developer. Dear PVS-Studio, please check it. // PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com - #define kShutterTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 }" #define kShutterTestNameFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 }" /*--------------------------------------------------------------------------*/ -TEST("Shutter - create set_state remove.") +TEST("Shutter - create set_state remove\t") { device_create_set_state_remove(kShutterEntry, kShutterTestNameTrue, kShutterTestNameFalse); } /*--------------------------------------------------------------------------*/ -TEST("Shutter - create - Error case") +TEST("Shutter - create - Error case\t") { device_create_error_case(kShutterEntry); } /*--------------------------------------------------------------------------*/ -TEST("Shutter - get_by_id - Error case") +TEST("Shutter - get_by_id - Error case\t") { device_get_by_id_error_case(kShutterEntry); } /*--------------------------------------------------------------------------*/ -TEST("Shutter - update - Error case") +TEST("Shutter - update - Error case\t") { device_get_by_id_error_case(kShutterEntry); } diff --git a/src/tests/test_sprinkler.c b/src/tests/test_sprinkler.c index 3be4f7a..6b64a7e 100644 --- a/src/tests/test_sprinkler.c +++ b/src/tests/test_sprinkler.c @@ -32,28 +32,28 @@ /*--------------------------------------------------------------------------*/ -TEST("Sprinkler - create set_state remove.") +TEST("Sprinkler - create set_state remove\t") { device_create_set_state_remove(kSprinklerEntry, kSprinklerTestNameTrue, kSprinklerTestNameFalse); } /*--------------------------------------------------------------------------*/ -TEST("Sprinkler - create - Error case") +TEST("Sprinkler - create - Error case\t") { device_create_error_case(kSprinklerEntry); } /*--------------------------------------------------------------------------*/ -TEST("Sprinkler - get_by_id - Error case") +TEST("Sprinkler - get_by_id - Error case\t") { device_get_by_id_error_case(kSprinklerEntry); } /*--------------------------------------------------------------------------*/ -TEST("Sprinkler - update - Error case") +TEST("Sprinkler - update - Error case\t") { device_get_by_id_error_case(kSprinklerEntry); }