Add test to remove outlet and shutter.
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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user