Add test to remove outlet and shutter.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
NADAL Jean-Baptiste
2020-01-09 11:49:51 +01:00
parent 0291ee9c4d
commit 677b2edc8f
5 changed files with 113 additions and 25 deletions

View File

@@ -199,19 +199,22 @@ char *devices_manager_get(devices_manager_t *dm, const char *capability)
if (capability == kOutletEntry)
{
output_node = devices_manager_outlets_to_json_object(dm);
}
else if (capability == kShutterEntry)
{
output_node = devices_manager_shutters_to_json_object(dm);
}
else if (capability == kSprinklerEntry)
{
output_node = devices_manager_sprinkler_to_json_object(dm);
output_node = devices_manager_sprinklers_to_json_object(dm);
}
if (output_node != NULL)
{
output = strdup(json_object_to_json_string(output_node));
json_object_put(output_node);
}
}
return output;
}

View File

@@ -130,9 +130,10 @@ int create_outlet(devices_manager_t *dm, struct json_object *node)
int remove_outlet(devices_manager_t *dm, uint16_t id)
{
outlet_dio_t *outlet;
qlist_obj_t obj;
outlet_dio_t *outlet_dio;
int position = 0;
int remove_id = -1;
int i = 0;
// Sanity Checks
if (dm == NULL)
@@ -140,15 +141,25 @@ int remove_outlet(devices_manager_t *dm, uint16_t id)
memset((void *)&obj, 0, sizeof(obj));
while (qlist_getnext(dm->outlets, &obj, true))
while (qlist_getnext(dm->outlets, &obj, false) == true)
{
outlet_dio = obj.data;
if (outlet_dio->device->id == id)
outlet = obj.data;
if (outlet->device->id == id)
{
qlist_removeat(dm->outlets, position);
remove_id = i;
break;
}
i++;
}
if (remove_id != -1)
{
outlet = qlist_popat(dm->outlets, remove_id, NULL);
if (outlet != NULL)
{
outlet_dio_free(outlet);
return 0;
}
position++;
}
return -1;
@@ -214,6 +225,31 @@ outlet_dio_t *get_outlet_by_id(devices_manager_t *dm, uint16_t id)
/*--------------------------------------------------------------------------*/
struct json_object *devices_manager_outlets_to_json_object(devices_manager_t *dm)
{
struct json_object *root_node;
qlist_obj_t obj;
outlet_dio_t *outlet;
// Sanity Checks
if (dm == NULL)
return NULL;
root_node = json_object_new_array();
memset((void *)&obj, 0, sizeof(obj));
while (qlist_getnext(dm->outlets, &obj, false))
{
outlet = obj.data;
json_object_array_add(root_node, outlet_dio_to_json_object(outlet));
}
return root_node;
}
/*--------------------------------------------------------------------------*/
int load_shutters(devices_manager_t *dm, struct json_object *node)
{
DEBUG("devicesManager-load_shutters\n");
@@ -296,10 +332,10 @@ int create_shutter(devices_manager_t *dm, struct json_object *node)
int remove_shutter(devices_manager_t *dm, uint16_t id)
{
qlist_obj_t obj;
shutter_t *shutter;
int position = 0;
int remove_position = -1;
qlist_obj_t obj;
int remove_id = -1;
int i = 0;
// Sanity Checks
if (dm == NULL)
@@ -307,22 +343,26 @@ int remove_shutter(devices_manager_t *dm, uint16_t id)
memset((void *)&obj, 0, sizeof(obj));
while (qlist_getnext(dm->shutters, &obj, true))
while (qlist_getnext(dm->shutters, &obj, false) == true)
{
shutter = obj.data;
if (shutter->outlet_dio->device->id == id)
{
qlist_removeat(dm->shutters, position);
return 0;
remove_id = i;
break;
}
position++;
i++;
}
if (remove_position != -1)
if (remove_id != -1)
{
qlist_removeat(dm->shutters, remove_position);
shutter = qlist_popat(dm->shutters, remove_id, NULL);
if (shutter != NULL)
{
shutter_free(shutter);
return 0;
}
}
return -1;
}
@@ -387,6 +427,31 @@ shutter_t *get_shutter_by_id(devices_manager_t *dm, uint16_t id)
/*--------------------------------------------------------------------------*/
struct json_object *devices_manager_shutters_to_json_object(devices_manager_t *dm)
{
struct json_object *root_node;
qlist_obj_t obj;
shutter_t *shutter;
// Sanity Checks
if (dm == NULL)
return NULL;
root_node = json_object_new_array();
memset((void *)&obj, 0, sizeof(obj));
while (qlist_getnext(dm->shutters, &obj, false))
{
shutter = obj.data;
json_object_array_add(root_node, shutter_to_json_object(shutter));
}
return root_node;
}
/*--------------------------------------------------------------------------*/
int load_sprinklers(devices_manager_t *dm, struct json_object *node)
{
DEBUG("devicesManager-load_sprinkler\n");
@@ -582,7 +647,7 @@ sprinkler_t *get_sprinkler_by_id(devices_manager_t *dm, uint16_t id)
/*--------------------------------------------------------------------------*/
struct json_object *devices_manager_sprinkler_to_json_object(devices_manager_t *dm)
struct json_object *devices_manager_sprinklers_to_json_object(devices_manager_t *dm)
{
struct json_object *root_node;
qlist_obj_t obj;

View File

@@ -45,6 +45,7 @@ extern int remove_outlet(devices_manager_t *dm, uint16_t id);
extern int update_outlet(devices_manager_t *dm, uint16_t id, struct json_object *node);
extern int set_outlet_state(devices_manager_t *dm, uint16_t id, bool state);
extern outlet_dio_t *get_outlet_by_id(devices_manager_t *dm, uint16_t id);
extern struct json_object *devices_manager_outlets_to_json_object(devices_manager_t *dm);
/*-------------------------------- SHUTTERS -----------------------------------*/
extern int load_shutters(devices_manager_t *dm, struct json_object *node);
@@ -54,6 +55,7 @@ extern int remove_shutter(devices_manager_t *dm, uint16_t id);
extern int update_shutter(devices_manager_t *dm, uint16_t id, struct json_object *node);
extern int set_shutter_state(devices_manager_t *dm, uint16_t id, bool state);
extern shutter_t *get_shutter_by_id(devices_manager_t *dm, uint16_t id);
extern struct json_object *devices_manager_shutters_to_json_object(devices_manager_t *dm);
/*------------------------------- SPRINKLERS ----------------------------------*/
extern int load_sprinklers(devices_manager_t *dm, struct json_object *node);
@@ -63,6 +65,6 @@ extern int remove_sprinkler(devices_manager_t *dm, uint16_t id);
extern int update_sprinkler(devices_manager_t *dm, uint16_t id, struct json_object *node);
extern int set_sprinkler_state(devices_manager_t *dm, uint16_t id, bool state);
extern sprinkler_t *get_sprinkler_by_id(devices_manager_t *dm, uint16_t id);
extern struct json_object *devices_manager_sprinkler_to_json_object(devices_manager_t *dm);
extern struct json_object *devices_manager_sprinklers_to_json_object(devices_manager_t *dm);
#endif /* _DEVICES_MANAGER_INTERNAL_H */

View File

@@ -29,6 +29,8 @@
#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 }"
#define kOutletTestNameFullFalse "{ \"id\": 1, \"name\": \"test_name\", \"speech_name\": \"speech_name\", \"state\": false, \"zone\": \"zone\", \"sender\": 123456, \"switch\": 77 }"
#define kOutletTestNameFull "[ { \"id\": 1, \"name\": \"test1\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }, { \"id\": 2, \"name\": \"test2\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }, { \"id\": 3, \"name\": \"test3\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 } ]"
#define kOutletTestRemoved "[ { \"id\": 1, \"name\": \"test1\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }, { \"id\": 3, \"name\": \"test3\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0 } ]"
/*--------------------------------------------------------------------------*/
@@ -39,6 +41,13 @@ TEST("Outlet - create set_state free\t")
/*--------------------------------------------------------------------------*/
TEST("Outlet - create 3 device remove 2\t")
{
device_create_three_devices_remove_second(kOutletEntry, kOutletTestNameFull, kOutletTestRemoved);
}
/*--------------------------------------------------------------------------*/
TEST("Outlet - create - Error case\t")
{
device_create_error_case(kOutletEntry);

View File

@@ -29,6 +29,8 @@
#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 }"
#define kShutterTestNameFullFalse "{ \"id\": 1, \"name\": \"test_name\", \"state\": false, \"zone\": \"zone\", \"sender\": 123456, \"switch\": 77, \"speed_up\": 50, \"speed_down\": 60 }"
#define kShutterTestNameFull "[ { \"id\": 1, \"name\": \"test1\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 }, { \"id\": 2, \"name\": \"test2\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 }, { \"id\": 3, \"name\": \"test3\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 } ]"
#define kShutterTestRemoved "[ { \"id\": 1, \"name\": \"test1\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 }, { \"id\": 3, \"name\": \"test3\", \"state\": false, \"zone\": \"\", \"sender\": 0, \"switch\": 0, \"speed_up\": 0, \"speed_down\": 0 } ]"
/*--------------------------------------------------------------------------*/
@@ -39,6 +41,13 @@ TEST("Shutter - create set_state free\t")
/*--------------------------------------------------------------------------*/
TEST("Shutter - create 3 device remove 2\t")
{
device_create_three_devices_remove_second(kShutterEntry, kShutterTestNameFull, kShutterTestRemoved);
}
/*--------------------------------------------------------------------------*/
TEST("Shutter - create - Error case\t")
{
device_create_error_case(kShutterEntry);