1 /* *****************************************************************
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * *****************************************************************/
20 #include "gtest/gtest.h"
21 #include "provisioningdatabasemanager.h"
23 const char ID_1[] = "1111111111111111";
24 const char ID_2[] = "2111111111111111";
25 const char ID_3[] = "3111111111111111";
26 const char ID_4[] = "4111111111111111";
27 const char ID_5[] = "5111111111111111";
28 const char ID_6[] = "6111111111111111";
29 const char ID_7[] = "7777777777777777";
30 const char ID_8[] = "8777777777777777";
32 TEST(CallPDMAPIbeforeInit, BeforeInit)
34 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMAddDevice(NULL));
35 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMIsDuplicateDevice(NULL,NULL));
36 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMLinkDevices(NULL, NULL));
37 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMUnlinkDevices(NULL, NULL));
38 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMDeleteDevice(NULL));
39 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetOwnedDevices(NULL, NULL));
40 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetLinkedDevices(NULL, NULL, NULL));
41 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMSetLinkStale(NULL, NULL));
42 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetToBeUnlinkedDevices(NULL, NULL));
43 EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMIsLinkExists(NULL, NULL, NULL));
46 TEST(PDMInitTest, PDMInitWithNULL)
48 EXPECT_EQ(OC_STACK_OK, PDMInit(NULL));
51 TEST(PDMAddDeviceTest, NullUUID)
53 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMAddDevice(NULL));
56 TEST(PDMIsDuplicateDeviceTest, NullUUID)
58 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMIsDuplicateDevice(NULL,NULL));
62 TEST(PDMIsDuplicateDeviceTest, ValidUUID)
64 OicUuid_t uid1 = {{0,}};
65 memcpy(&uid1.id, ID_1, sizeof(uid1.id));
67 OicUuid_t uid2 = {{0,}};
68 memcpy(&uid2.id, ID_2, sizeof(uid2.id));
70 OicUuid_t uid3 = {{0,}};
71 memcpy(&uid3.id, ID_3, sizeof(uid3.id));
72 bool isDuplicate = true;
73 EXPECT_EQ(OC_STACK_OK, PDMIsDuplicateDevice(&uid1,&isDuplicate));
74 EXPECT_TRUE(isDuplicate);
76 EXPECT_EQ(OC_STACK_OK, PDMIsDuplicateDevice(&uid3, &isDuplicate));
77 EXPECT_FALSE(isDuplicate);
80 TEST(PDMAddDeviceTest, ValidUUID)
82 OicUuid_t uid = {{0,}};
84 uint8_t id[UUID_LENGTH] = {0,};
85 for (size_t i = 0 ; i < sizeof(id) ; i++)
87 int tem = rand() % 25;
92 memcpy(&uid.id, &id, UUID_LENGTH);
94 EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid));
95 PDMDeleteDevice(&uid);
98 TEST(PDMLinkDevicesTest, NULLDevice1)
100 OicUuid_t uid = {{0,}};
101 memcpy(&uid.id, ID_2, sizeof(uid.id));
102 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMLinkDevices(NULL, &uid));
105 TEST(PDMLinkDevicesTest, NULLDevice2)
107 OicUuid_t uid = {{0,}};
108 memcpy(&uid.id, ID_3, sizeof(uid.id));
109 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMLinkDevices(&uid, NULL));
112 TEST(PDMLinkDevicesTest, ValidCase)
114 OicUuid_t uid1 = {{0,}};
115 memcpy(&uid1.id, ID_4, sizeof(uid1.id));
117 OicUuid_t uid2 = {{0,}};
118 memcpy(&uid2.id, ID_5, sizeof(uid2.id));
120 EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid1, &uid2));
123 TEST(PDMUnlinkDevicesTest, NULLDevice1)
125 OicUuid_t uid = {{0,}};
126 memcpy(&uid.id, ID_3, sizeof(uid.id));
127 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMUnlinkDevices(NULL, &uid));
130 TEST(PDMUnlinkDevicesTest, NULLDevice2)
132 OicUuid_t uid = {{0,}};
133 memcpy(&uid.id, ID_3, sizeof(uid.id));
134 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMUnlinkDevices(&uid, NULL));
137 TEST(PDMUnlinkDevices, ValidCase)
139 OicUuid_t uid1 = {{0,}};
140 memcpy(&uid1.id, ID_4, sizeof(uid1.id));
141 OicUuid_t uid2 = {{0,}};
142 memcpy(&uid2.id, ID_5, sizeof(uid2.id));
143 EXPECT_EQ(OC_STACK_OK, PDMUnlinkDevices(&uid1, &uid2));
147 TEST (PDMDeleteDevice, NULLDeviceID)
149 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMDeleteDevice(NULL));
152 TEST (PDMDeleteDevice, ValidButNonExistDeviceID)
155 OicUuid_t uid = {{0,}};
156 uint8_t id[UUID_LENGTH] = {0,};
157 for (size_t i = 0 ; i < sizeof(id) ; i++)
159 int tem = rand() % 25;
164 memcpy(&uid.id, &id, sizeof(uid.id));
165 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMDeleteDevice(&uid));
168 TEST(PDMGetOwnedDevices, ValidCase)
170 OCUuidList_t *list = NULL;
171 size_t noOfDevcies = 0;
172 EXPECT_EQ(OC_STACK_OK, PDMGetOwnedDevices(&list, &noOfDevcies));
175 TEST(PDMGetLinkedDevices, NULLDeviceID)
177 OCUuidList_t *list = NULL;
178 size_t noOfDevices = 0;
179 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMGetLinkedDevices(NULL, &list, &noOfDevices));
182 TEST(PDMGetLinkedDevices, ValidCase)
184 OicUuid_t uid = {{0,}};
185 memcpy(&uid.id, ID_1, sizeof(uid.id));
186 OCUuidList_t *list = NULL;
187 size_t noOfDevices = 0;
188 EXPECT_EQ(OC_STACK_OK, PDMGetLinkedDevices(&uid, &list, &noOfDevices));
191 TEST(PDMGetLinkedDevices, InvalidCase)
193 OicUuid_t uid = {{0,}};
194 memcpy(&uid.id, ID_6, sizeof(uid.id));
195 OCUuidList_t *list = NULL;
196 size_t noOfDevices = 0;
197 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMGetLinkedDevices(&uid, &list, &noOfDevices));
200 TEST(PDMSetLinkStale, NULLDeviceID1)
202 OicUuid_t uid = {{0,}};
203 memcpy(&uid.id, ID_1, sizeof(uid.id));
204 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetLinkStale(NULL, &uid));
207 TEST(PDMSetLinkStale, NULLDeviceID2)
209 OicUuid_t uid = {{0,}};
210 memcpy(&uid.id, ID_1, sizeof(uid.id));
211 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetLinkStale(&uid, NULL));
214 TEST(PDMSetLinkStale, ValidCase)
216 OicUuid_t uid1 = {{0,}};
217 memcpy(&uid1.id, ID_6, sizeof(uid1.id));
218 OicUuid_t uid2 = {{0,}};
219 memcpy(&uid2.id, ID_1, sizeof(uid2.id));
221 EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetLinkStale(&uid1, &uid2));
223 EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1));
225 EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid1, &uid2));
227 EXPECT_EQ(OC_STACK_OK, PDMSetLinkStale(&uid1, &uid2));
230 TEST(PDMGetToBeUnlinkedDevices, ValidCase)
232 OCPairList_t *list = NULL;
233 size_t noOfDevices = 0;
234 EXPECT_EQ(OC_STACK_OK, PDMGetToBeUnlinkedDevices(&list, &noOfDevices));
237 TEST(PDMClose, ValidCase)
239 EXPECT_EQ(OC_STACK_OK, PDMClose());
242 TEST(PDMDestoryOicUuidLinkList, NULLParam)
244 PDMDestoryOicUuidLinkList(NULL);
247 TEST(PDMDestoryStaleLinkList, NULLParam)
249 PDMDestoryStaleLinkList(NULL);
252 TEST(PDMIsLinkExistsTest, DuplicateID)
254 EXPECT_EQ(OC_STACK_OK, PDMInit(NULL));
255 OicUuid_t uid1 = {{0,}};
256 memcpy(&uid1.id, ID_7, sizeof(uid1.id));
257 EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid1));
258 OicUuid_t uid2 = {{0,}};
259 memcpy(&uid2.id, ID_8, sizeof(uid2.id));
260 EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid2));
262 bool linkExisits = true;
263 OCStackResult res = PDMIsLinkExists(&uid1, &uid2, &linkExisits);
264 EXPECT_EQ(OC_STACK_OK, res);
265 EXPECT_FALSE(linkExisits);