2265f60f4e27b3912e6d9ee7a39090520b75d39a
[platform/upstream/iotivity.git] / resource / csdk / security / provisioning / unittest / provisioningdatabasemanager.cpp
1 /* *****************************************************************
2  *
3  * Copyright 2015 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
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
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  * *****************************************************************/
20 #include "gtest/gtest.h"
21 #include "provisioningdatabasemanager.h"
22
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
30 TEST(CallPDMAPIbeforeInit, BeforeInit)
31 {
32     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMAddDevice(NULL));
33     EXPECT_EQ(true, PDMIsDuplicateDevice(NULL)); // return type is not OCStackResult
34     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMLinkDevices(NULL, NULL));
35     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMUnlinkDevices(NULL, NULL));
36     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMDeleteDevice(NULL));
37     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetOwnedDevices(NULL, NULL));
38     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetLinkedDevices(NULL, NULL, NULL));
39     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMSetLinkStale(NULL, NULL));
40     EXPECT_EQ(OC_STACK_PDM_IS_NOT_INITIALIZED, PDMGetToBeUnlinkedDevices(NULL, NULL));
41 }
42
43 TEST(PDMInitTest, PDMInitWithNULL)
44 {
45     EXPECT_EQ(OC_STACK_OK, PDMInit(NULL));
46 }
47
48 TEST(PDMAddDeviceTest, NullUUID)
49 {
50     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMAddDevice(NULL));
51 }
52
53 TEST(PDMIsDuplicateDeviceTest, NullUUID)
54 {
55     EXPECT_TRUE(PDMIsDuplicateDevice(NULL));
56 }
57
58
59 TEST(PDMIsDuplicateDeviceTest, ValidUUID)
60 {
61     OicUuid_t uid1 = {{0,}};
62     memcpy(&uid1.id, ID_1, sizeof(uid1.id));
63     PDMAddDevice(&uid1);
64     OicUuid_t uid2 = {{0,}};
65     memcpy(&uid2.id, ID_2, sizeof(uid2.id));
66     PDMAddDevice(&uid2);
67     OicUuid_t uid3 = {{0,}};
68     memcpy(&uid3.id, ID_3, sizeof(uid3.id));
69
70     EXPECT_TRUE(PDMIsDuplicateDevice(&uid1));
71     EXPECT_FALSE(PDMIsDuplicateDevice(&uid3));
72 }
73
74 TEST(PDMAddDeviceTest, ValidUUID)
75 {
76     OicUuid_t uid = {{0,}};
77
78     uint8_t id[UUID_LENGTH] = {0,};
79     for (size_t i = 0 ; i < sizeof(id) ; i++)
80     {
81         int tem = rand() % 25;
82
83         id[i] = tem + 65;
84     }
85
86     memcpy(&uid.id, &id, UUID_LENGTH);
87
88     EXPECT_EQ(OC_STACK_OK, PDMAddDevice(&uid));
89     PDMDeleteDevice(&uid);
90 }
91
92 TEST(PDMLinkDevicesTest, NULLDevice1)
93 {
94     OicUuid_t uid = {{0,}};
95     memcpy(&uid.id, ID_2, sizeof(uid.id));
96     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMLinkDevices(NULL, &uid));
97 }
98
99 TEST(PDMLinkDevicesTest, NULLDevice2)
100 {
101     OicUuid_t uid = {{0,}};
102     memcpy(&uid.id, ID_3, sizeof(uid.id));
103     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMLinkDevices(&uid, NULL));
104 }
105
106 TEST(PDMLinkDevicesTest, ValidCase)
107 {
108     OicUuid_t uid1 = {{0,}};
109     memcpy(&uid1.id, ID_4, sizeof(uid1.id));
110     PDMAddDevice(&uid1);
111     OicUuid_t uid2 = {{0,}};
112     memcpy(&uid2.id, ID_5, sizeof(uid2.id));
113     PDMAddDevice(&uid2);
114     EXPECT_EQ(OC_STACK_OK, PDMLinkDevices(&uid1, &uid2));
115 }
116
117 TEST(PDMUnlinkDevicesTest, NULLDevice1)
118 {
119     OicUuid_t uid = {{0,}};
120     memcpy(&uid.id, ID_3, sizeof(uid.id));
121     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMUnlinkDevices(NULL, &uid));
122 }
123
124 TEST(PDMUnlinkDevicesTest, NULLDevice2)
125 {
126     OicUuid_t uid = {{0,}};
127     memcpy(&uid.id, ID_3, sizeof(uid.id));
128     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMUnlinkDevices(&uid, NULL));
129 }
130
131 TEST(PDMUnlinkDevices, ValidCase)
132 {
133     OicUuid_t uid1 = {{0,}};
134     memcpy(&uid1.id, ID_4, sizeof(uid1.id));
135     OicUuid_t uid2 = {{0,}};
136     memcpy(&uid2.id, ID_5, sizeof(uid2.id));
137     EXPECT_EQ(OC_STACK_OK, PDMUnlinkDevices(&uid1, &uid2));
138 }
139
140
141 TEST (PDMDeleteDevice, NULLDeviceID)
142 {
143     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMDeleteDevice(NULL));
144 }
145
146 TEST (PDMDeleteDevice, ValidDeviceID)
147 {
148
149     OicUuid_t uid = {{0,}};
150     uint8_t id[UUID_LENGTH] = {0,};
151     for (size_t i = 0 ; i < sizeof(id) ; i++)
152     {
153         int tem = rand() % 25;
154
155         id[i] = tem + 65;
156     }
157
158     memcpy(&uid.id, &id, sizeof(uid.id));
159     EXPECT_EQ(OC_STACK_OK, PDMDeleteDevice(&uid));
160 }
161
162 TEST(PDMGetOwnedDevices, ValidCase)
163 {
164     OCUuidList_t *list = NULL;
165     size_t noOfDevcies = 0;
166     EXPECT_EQ(OC_STACK_OK, PDMGetOwnedDevices(&list, &noOfDevcies));
167 }
168
169 TEST(PDMGetLinkedDevices, NULLDeviceID)
170 {
171     OCUuidList_t *list = NULL;
172     size_t noOfDevices = 0;
173     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMGetLinkedDevices(NULL, &list, &noOfDevices));
174 }
175
176 TEST(PDMGetLinkedDevices, ValidCase)
177 {
178     OicUuid_t uid = {{0,}};
179     memcpy(&uid.id, ID_1, sizeof(uid.id));
180     OCUuidList_t *list = NULL;
181     size_t noOfDevices = 0;
182     EXPECT_EQ(OC_STACK_OK, PDMGetLinkedDevices(&uid, &list, &noOfDevices));
183 }
184
185 TEST(PDMSetLinkStale, NULLDeviceID1)
186 {
187     OicUuid_t uid = {{0,}};
188     memcpy(&uid.id, ID_1, sizeof(uid.id));
189     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetLinkStale(NULL, &uid));
190 }
191
192 TEST(PDMSetLinkStale, NULLDeviceID2)
193 {
194     OicUuid_t uid = {{0,}};
195     memcpy(&uid.id, ID_1, sizeof(uid.id));
196     EXPECT_EQ(OC_STACK_INVALID_PARAM, PDMSetLinkStale(&uid, NULL));
197 }
198
199 TEST(PDMSetLinkStale, ValidCase)
200 {
201     OicUuid_t uid1 = {{0,}};
202     memcpy(&uid1.id, ID_6, sizeof(uid1.id));
203     OicUuid_t uid2 = {{0,}};
204     memcpy(&uid2.id, ID_1, sizeof(uid2.id));
205     EXPECT_EQ(OC_STACK_OK, PDMSetLinkStale(&uid1, &uid2));
206 }
207
208 TEST(PDMGetToBeUnlinkedDevices, ValidCase)
209 {
210     OCPairList_t *list = NULL;
211     size_t noOfDevices = 0;
212     EXPECT_EQ(OC_STACK_OK, PDMGetToBeUnlinkedDevices(&list, &noOfDevices));
213 }
214
215 TEST(PDMClose, ValidCase)
216 {
217    EXPECT_EQ(OC_STACK_OK, PDMClose());
218 }
219
220 TEST(PDMDestoryOicUuidLinkList, NULLParam)
221 {
222    EXPECT_EQ(OC_STACK_OK, PDMDestoryOicUuidLinkList(NULL));
223 }
224
225 TEST(PDMDestoryStaleLinkList, NULLParam)
226 {
227    EXPECT_EQ(OC_STACK_OK, PDMDestoryOicUuidLinkList(NULL));
228 }