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)
|
if (capability == kOutletEntry)
|
||||||
{
|
{
|
||||||
|
output_node = devices_manager_outlets_to_json_object(dm);
|
||||||
}
|
}
|
||||||
else if (capability == kShutterEntry)
|
else if (capability == kShutterEntry)
|
||||||
{
|
{
|
||||||
|
output_node = devices_manager_shutters_to_json_object(dm);
|
||||||
}
|
}
|
||||||
else if (capability == kSprinklerEntry)
|
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)
|
if (output_node != NULL)
|
||||||
{
|
{
|
||||||
output = strdup(json_object_to_json_string(output_node));
|
output = strdup(json_object_to_json_string(output_node));
|
||||||
json_object_put(output_node);
|
json_object_put(output_node);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return output;
|
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)
|
int remove_outlet(devices_manager_t *dm, uint16_t id)
|
||||||
{
|
{
|
||||||
|
outlet_dio_t *outlet;
|
||||||
qlist_obj_t obj;
|
qlist_obj_t obj;
|
||||||
outlet_dio_t *outlet_dio;
|
int remove_id = -1;
|
||||||
int position = 0;
|
int i = 0;
|
||||||
|
|
||||||
// Sanity Checks
|
// Sanity Checks
|
||||||
if (dm == NULL)
|
if (dm == NULL)
|
||||||
@@ -140,15 +141,25 @@ int remove_outlet(devices_manager_t *dm, uint16_t id)
|
|||||||
|
|
||||||
memset((void *)&obj, 0, sizeof(obj));
|
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;
|
outlet = obj.data;
|
||||||
if (outlet_dio->device->id == id)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
position++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
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)
|
int load_shutters(devices_manager_t *dm, struct json_object *node)
|
||||||
{
|
{
|
||||||
DEBUG("devicesManager-load_shutters\n");
|
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)
|
int remove_shutter(devices_manager_t *dm, uint16_t id)
|
||||||
{
|
{
|
||||||
qlist_obj_t obj;
|
|
||||||
shutter_t *shutter;
|
shutter_t *shutter;
|
||||||
int position = 0;
|
qlist_obj_t obj;
|
||||||
int remove_position = -1;
|
int remove_id = -1;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
// Sanity Checks
|
// Sanity Checks
|
||||||
if (dm == NULL)
|
if (dm == NULL)
|
||||||
@@ -307,22 +343,26 @@ int remove_shutter(devices_manager_t *dm, uint16_t id)
|
|||||||
|
|
||||||
memset((void *)&obj, 0, sizeof(obj));
|
memset((void *)&obj, 0, sizeof(obj));
|
||||||
|
|
||||||
while (qlist_getnext(dm->shutters, &obj, true))
|
while (qlist_getnext(dm->shutters, &obj, false) == true)
|
||||||
{
|
{
|
||||||
shutter = obj.data;
|
shutter = obj.data;
|
||||||
if (shutter->outlet_dio->device->id == id)
|
if (shutter->outlet_dio->device->id == id)
|
||||||
{
|
{
|
||||||
qlist_removeat(dm->shutters, position);
|
remove_id = i;
|
||||||
return 0;
|
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 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return -1;
|
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)
|
int load_sprinklers(devices_manager_t *dm, struct json_object *node)
|
||||||
{
|
{
|
||||||
DEBUG("devicesManager-load_sprinkler\n");
|
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;
|
struct json_object *root_node;
|
||||||
qlist_obj_t obj;
|
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 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 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 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 -----------------------------------*/
|
/*-------------------------------- SHUTTERS -----------------------------------*/
|
||||||
extern int load_shutters(devices_manager_t *dm, struct json_object *node);
|
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 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 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 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 ----------------------------------*/
|
/*------------------------------- SPRINKLERS ----------------------------------*/
|
||||||
extern int load_sprinklers(devices_manager_t *dm, struct json_object *node);
|
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 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 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 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 */
|
#endif /* _DEVICES_MANAGER_INTERNAL_H */
|
||||||
|
|||||||
@@ -29,6 +29,8 @@
|
|||||||
#define kOutletTestNameTrue "{ \"id\": 1, \"name\": \"test_name\", \"state\": true, \"zone\": \"\", \"sender\": 0, \"switch\": 0 }"
|
#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 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 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")
|
TEST("Outlet - create - Error case\t")
|
||||||
{
|
{
|
||||||
device_create_error_case(kOutletEntry);
|
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 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 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 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")
|
TEST("Shutter - create - Error case\t")
|
||||||
{
|
{
|
||||||
device_create_error_case(kShutterEntry);
|
device_create_error_case(kShutterEntry);
|
||||||
|
|||||||
Reference in New Issue
Block a user