TEST(PDMSetDeviceStaleTest, StaleDeviceNotinLinkedDevice) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); OicUuid_t uid1 = {{0,}}; memcpy(&uid1.id, ID_11, sizeof(uid1.id)); OicUuid_t uid2 = {{0,}}; memcpy(&uid2.id, ID_12, sizeof(uid2.id)); OicUuid_t uid3 = {{0,}}; memcpy(&uid3.id, ID_13, sizeof(uid3.id)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid2)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid3)); EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid1, &uid2)); EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid2, &uid3)); EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid1, &uid3)); EXPECT_EQ(OC_STACK_OK,PDMSetDeviceStale(&uid1)); OCUuidList_t *list1 = NULL; size_t noOfDevices1 = 0; EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMGetLinkedDevices(&uid1, &list1, &noOfDevices1)); OCUuidList_t *list2 = NULL; size_t noOfDevices2 = 0; EXPECT_EQ(OC_STACK_OK, PDMGetLinkedDevices(&uid2, &list2, &noOfDevices2)); OCUuidList_t *ptr = list2; while(ptr) { EXPECT_FALSE(0 == memcmp(ptr->dev.id, uid1.id,sizeof(uid1.id))); ptr = ptr->next; } ptr = list2; while(ptr) { EXPECT_TRUE(0 == memcmp(ptr->dev.id, uid3.id,sizeof(uid3.id))); ptr = ptr->next; } OCUuidList_t *list3 = NULL; size_t noOfDevices3 = 0; EXPECT_EQ(OC_STACK_OK, PDMGetLinkedDevices(&uid3, &list3, &noOfDevices3)); ptr = list3; while(ptr) { EXPECT_FALSE(0 == memcmp(ptr->dev.id, uid1.id,sizeof(uid1.id))); ptr = ptr->next; } ptr = list3; while(ptr) { EXPECT_TRUE(0 == memcmp(ptr->dev.id, uid2.id,sizeof(uid2.id))); ptr = ptr->next; } }
TEST(PDMSetDeviceStaleTest, VALIDUUID) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); OicUuid_t uid1 = {{0,}}; memcpy(&uid1.id, ID_9, sizeof(uid1.id)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1)); EXPECT_EQ(OC_STACK_OK,PDMSetDeviceStale(&uid1)); }
TEST(PDMIsLinkExistsTest, DuplicateID) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); OicUuid_t uid1 = {{0,}}; memcpy(&uid1.id, ID_7, sizeof(uid1.id)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1)); OicUuid_t uid2 = {{0,}}; memcpy(&uid2.id, ID_8, sizeof(uid2.id)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid2)); bool linkExisits = true; OCStackResult res = PDMIsLinkExists(&uid1, &uid2, &linkExisits); EXPECT_EQ(OC_STACK_OK, res); EXPECT_FALSE(linkExisits); }
TEST(PDMSetDeviceStaleTest, StaleDeviceNotinDeviceList) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); OicUuid_t uid1 = {{0,}}; memcpy(&uid1.id, ID_10, sizeof(uid1.id)); EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1)); EXPECT_EQ(OC_STACK_OK,PDMSetDeviceStale(&uid1)); OCUuidList_t *list = NULL; size_t noOfDevcies = 0; EXPECT_EQ(OC_STACK_OK, PDMGetOwnedDevices(&list, &noOfDevcies)); while (list) { EXPECT_FALSE(0 == memcmp(list->dev.id, uid1.id,sizeof(uid1.id))); list = list->next; } }
/** * The function is responsible for initializaton of the provisioning manager. It will load * provisioning database which have owned device's list and their linked status. * TODO: In addition, if there is a device(s) which has not up-to-date credentials, this function will * automatically try to update the deivce(s). * * @param[in] dbPath file path of the sqlite3 db * * @return OC_STACK_OK in case of success and other value otherwise. */ OCStackResult OCInitPM(const char* dbPath) { return PDMInit(dbPath); }
TEST(PDMInitTest, PDMInitWithNULL) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); }
TEST(PDMSetDeviceStaleTest, NULLUUID) { EXPECT_EQ(OC_STACK_OK, PDMInit(NULL)); EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetDeviceStale(NULL)); }