Merge test folder of test branch
[iotivity.git] / test / src / tc / ri / gtest / csdk / src / btc / RICsdkServerTest.cpp
1 /******************************************************************
2  *
3  * Copyright 2017 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  ******************************************************************/
21
22 #include "RICsdkHelper.h"
23
24 class RICsdkServerTest_btc: public ::testing::Test
25 {
26 public:
27     RICsdkHelper *m_pRICsdkHelper;
28     OCMode m_ServerMode = OC_SERVER;
29     OCMode m_GatewayMode = OC_GATEWAY;
30     OCMode m_ClientServerMode = OC_CLIENT_SERVER;
31     OCTransportFlags m_DefaultTransportFlags = OC_DEFAULT_FLAGS;
32     OCTransportAdapter m_TransportType = OC_DEFAULT_ADAPTER;
33     OCStackResult m_result;
34     OCResourceHandle m_handle;
35     OCResourceHandle m_lightHandle;
36     OCResourceHandle m_fanHandle;
37
38     virtual void SetUp()
39     {
40         CommonTestUtil::runCommonTCSetUpPart();
41         m_pRICsdkHelper = RICsdkHelper::getInstance();
42         m_result = OC_STACK_ERROR;
43         m_handle = NULL;
44         m_lightHandle = NULL;
45         m_fanHandle = NULL;
46     }
47
48     virtual void TearDown()
49     {
50         CommonTestUtil::runCommonTCTearDownPart();
51     }
52
53     static OCEntityHandlerResult OCEntityHandlerCb(OCEntityHandlerFlag flag,
54             OCEntityHandlerRequest *entityHandlerRequest, void* /*callback*/)
55     {
56         return OC_EH_OK;
57     }
58
59     static FILE* server_fopen(const char *path, const char *mode)
60     {
61         (void) path;
62         return fopen(DATABASE_FILE, mode);
63     }
64 };
65
66 /**
67  * @since 2016-07-19
68  * @see none
69  * @see OCStackResult OCStop()
70  * @objective Test OCInit with positive basic way
71  * @target OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
72  * @test_data    1. ipAddr null
73  *                 2. port 0
74  *                 3. mode server mode
75  * @pre_condition none
76  * @procedure Call OCInit() API
77  * @post_condition Call OCStop()
78  * @expected Should return OC_STACK_OK
79  */
80 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
81 TEST_F(RICsdkServerTest_btc, OCInitServer_SRC_P)
82 {
83     m_result = m_pRICsdkHelper->initServer();
84     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit failed for server. Actual result : " <<
85                                      CommonUtil::s_OCStackResultString.at(m_result);
86 }
87 #endif
88
89 /**
90  * @since 2016-07-19
91  * @see none
92  * @see OCStackResult OCStop()
93  * @objective Test OCInit with positive basic way using mode as client_server
94  * @target OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
95  * @test_data    1. ipAddr null
96  *                 2. port 0
97  *                 3. mode client_server mode
98  * @pre_condition none
99  * @procedure Call OCInit() API
100  * @post_condition Call OCStop()
101  * @expected Should return OC_STACK_OK
102  */
103 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
104 TEST_F(RICsdkServerTest_btc, OCInitClientServer_SRC_P)
105 {
106     uint16_t portZero = 0;
107     const char *ipAddress = nullptr;
108
109     m_result = OCInit(ipAddress, portZero, m_ClientServerMode);
110     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit failed for client-server. Actual result : " <<
111                                      CommonUtil::s_OCStackResultString.at(m_result);
112 }
113 #endif
114
115 /**
116  * @since 2016-07-19
117  * @see none
118  * @see OCStackResult OCStop()
119  * @objective Test OCInit with negative basic way using mode as gateway
120  * @target OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
121  * @test_data    1. ipAddr null
122  *                 2. port 0
123  *                 3. mode gateway mode
124  * @pre_condition none
125  * @procedure Call OCInit() API
126  * @post_condition Call OCStop()
127  * @expected Should return OC_STACK_INVALID_PARAM
128  */
129 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
130 TEST_F(RICsdkServerTest_btc, OCInit_USV_N)
131 {
132     uint16_t portZero = 0;
133     const char *ipAddress = nullptr;
134
135     m_result = OCInit(ipAddress, portZero, m_GatewayMode);
136     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result) << "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(
137                             m_result);
138
139 }
140 #endif
141
142 /**
143  * @since 2016-07-19
144  * @see none
145  * @see OCStackResult OCStop()
146  * @objective Test OCInit1 with positive basic way
147  * @target OCStackResult OCInit1(OCMode mode, OCTransportFlags serverFlags,
148  *         OCTransportFlags clientFlags)
149  * @test_data    1. mode OCMode server mode
150  *                 2. serverFlags Default server transport flags
151  *                 3. clientFlags Default client transport flags
152  * @pre_condition none
153  * @procedure Call OCInit1() API
154  * @post_condition Call OCStop()
155  * @expected Should return OC_STACK_OK
156  */
157 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
158 TEST_F(RICsdkServerTest_btc, OCInit1Server_SRC_P)
159 {
160     m_result = OCInit1(m_ServerMode, m_DefaultTransportFlags, m_DefaultTransportFlags);
161     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit1 failed for server. Actual result : " <<
162                                      CommonUtil::s_OCStackResultString.at(m_result);
163 }
164 #endif
165
166 /**
167  * @since 2016-07-19
168  * @see none
169  * @see OCStackResult OCStop()
170  * @objective Test OCInit1 with positive basic way using client_server mode
171  * @target OCStackResult OCInit1(OCMode mode, OCTransportFlags serverFlags,
172  *         OCTransportFlags clientFlags)
173  * @test_data    1. mode OCMode server mode
174  *                 2. serverFlags Default server transport flags
175  *                 3. clientFlags Default client transport flags
176  * @pre_condition none
177  * @procedure Call OCInit1() API
178  * @post_condition Call OCStop()
179  * @expected Should return OC_STACK_OK
180  */
181 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
182 TEST_F(RICsdkServerTest_btc, OCInit1ClientServer_SRC_P)
183 {
184     m_result = OCInit1(m_ClientServerMode, m_DefaultTransportFlags, m_DefaultTransportFlags);
185     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit1 failed for client-server. Actual result : " <<
186                                      CommonUtil::s_OCStackResultString.at(m_result);
187 }
188 #endif
189
190 /**
191  * @since 2016-07-19
192  * @see none
193  * @see OCStackResult OCStop()
194  * @objective Test OCInit1 with negative basic way with mode as gateway
195  * @target OCStackResult OCInit1(OCMode mode, OCTransportFlags serverFlags,
196  *         OCTransportFlags clientFlags)
197  * @test_data    1. mode gateway mode
198  *                 2. serverFlags Default server transport flags
199  *                 3. clientFlags Default client transport flags
200  * @pre_condition none
201  * @procedure Call OCInit1() API
202  * @post_condition Call OCStop()
203  * @expected Should return OC_STACK_INVALID_PARAM
204  */
205 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
206 TEST_F(RICsdkServerTest_btc, OCInit1Server_USV_N)
207 {
208     m_result = OCInit1(m_GatewayMode, m_DefaultTransportFlags, m_DefaultTransportFlags);
209     ASSERT_EQ(OC_STACK_INVALID_PARAM, m_result) << "OCInit1 failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(
210                             m_result);
211 }
212 #endif
213
214 /**
215  * @since 2018-03-15
216  * @see none
217  * @see OCStackResult OCStop()
218  * @objective Test OCInit2 with positive basic way
219  * @target OCStackResult OCInit2(OCMode mode, OCTransportFlags serverFlags,
220  *         OCTransportFlags clientFlags, OCTransportAdapter transportType)
221  * @test_data      1. mode OCMode server mode
222  *                 2. serverFlags Default server transport flags
223  *                 3. clientFlags Default client transport flag
224  *                 4. transportType Default transport adapter value
225  * @pre_condition none
226  * @procedure Call OCInit2() API
227  * @post_condition Call OCStop()
228  * @expected Should return OC_STACK_OK
229  */
230 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
231 TEST_F(RICsdkServerTest_btc, OCInit2Server_SRC_P)
232 {
233     m_result = OCInit2(m_ServerMode, m_DefaultTransportFlags, m_DefaultTransportFlags, m_TransportType);
234     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit2 failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(
235                             m_result);
236 }
237 #endif
238
239 /**
240  * @since 2018-03-15
241  * @see none
242  * @see OCStackResult OCStop()
243  * @objective Test OCInit2 with positive basic way
244  * @target OCStackResult OCInit2(OCMode mode, OCTransportFlags serverFlags,
245  *         OCTransportFlags clientFlags, OCTransportAdapter transportType)
246  * @test_data      1. mode OCMode clientserver mode
247  *                 2. serverFlags Default server transport flags
248  *                 3. clientFlags Default client transport flag
249  *                 4. transportType Default transport adapter value
250  * @pre_condition none
251  * @procedure Call OCInit2() API
252  * @post_condition Call OCStop()
253  * @expected Should return OC_STACK_OK
254  */
255 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
256 TEST_F(RICsdkServerTest_btc, OCInit2ClientServer_SRC_P)
257 {
258     m_result = OCInit2(m_ClientServerMode, m_DefaultTransportFlags, m_DefaultTransportFlags, m_TransportType);
259     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit2 failed for client-server. Actual result : " <<
260                                      CommonUtil::s_OCStackResultString.at(m_result);
261 }
262 #endif
263
264 /**
265  * @since 2018-03-15
266  * @see none
267  * @see OCStackResult OCStop()
268  * @objective Test OCInit2 with negative basic way with mode as gateway
269  * @target OCStackResult OCInit2(OCMode mode, OCTransportFlags serverFlags,
270  *         OCTransportFlags clientFlags, OCTransportAdapter transportType)
271  * @test_data      1. mode gateway mode
272  *                 2. serverFlags Default server transport flags
273  *                 3. clientFlags Default client transport flags
274  *                 4. transportType Default transport adapter value
275  * @pre_condition none
276  * @procedure Call OCInit2() API
277  * @post_condition Call OCStop()
278  * @expected Should return OC_STACK_INVALID_PARAM
279  */
280 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
281 TEST_F(RICsdkServerTest_btc, OCInit2Server_USV_N)
282 {
283     m_result = OCInit2(m_GatewayMode, m_DefaultTransportFlags, m_DefaultTransportFlags, m_TransportType);
284     ASSERT_EQ(OC_STACK_INVALID_PARAM, m_result) << "OCInit2 failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(
285                             m_result);
286 }
287 #endif
288
289 /**
290  * @since 2016-07-19
291  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
292  * @see OCStackResult OCStop()
293  * @objective Test OCStop with positive basic way
294  * @target OCStackResult OCStop()
295  * @test_data none
296  * @pre_condition Call OCInit() API
297  * @procedure Call OCStop()() API
298  * @post_condition none
299  * @expected Should return OC_STACK_OK
300  */
301 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
302 TEST_F(RICsdkServerTest_btc, OCStop_SRC_P)
303 {
304     m_result = m_pRICsdkHelper->initServer();
305     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit failed for server. Actual result : " <<
306                                      CommonUtil::s_OCStackResultString.at(m_result);
307
308     m_result = OCStop();
309     ASSERT_EQ(OC_STACK_OK, m_result) << "OCStop failed. Actual result : " <<
310                                      CommonUtil::s_OCStackResultString.at(m_result);
311 }
312 #endif
313
314 /**
315  * @since 2016-07-19
316  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
317  * @see OCStackResult OCStop()
318  * @objective Test OCSetPlatformInfo with positive basic way
319  * @target OCStackResult OCSetPlatformInfo(OCPlatformInfo platformInfo)
320  * @test_data platformInfo Structure containing the platform information
321  * @pre_condition Call OCInit() API
322  * @procedure Call OCSetPlatformInfo() API
323  * @post_condition Call OCStop()
324  * @expected Should return OC_STACK_OK
325  */
326 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
327 TEST_F(RICsdkServerTest_btc, OCSetPlatformInfo_SRC_FSV_P)
328 {
329     m_result = m_pRICsdkHelper->initServer();
330     ASSERT_EQ(OC_STACK_OK, m_result) << "OCInit failed for server. Actual result : " <<
331                                      CommonUtil::s_OCStackResultString.at(m_result);
332
333     m_result = OCSetPlatformInfo(m_pRICsdkHelper->getPlatformInfo());
334     ASSERT_EQ(OC_STACK_OK, m_result) << "OCSetPlatformInfo failed. Actual result : " <<
335                                      CommonUtil::s_OCStackResultString.at(m_result);
336 }
337 #endif
338
339 /**
340  * @since 2016-07-19
341  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
342  * @see OCStackResult OCStop()
343  * @objective Test OCSetPlatformInfo with negative basic way using platformInfo without setting platform information
344  * @target OCStackResult OCSetPlatformInfo(OCPlatformInfo platformInfo)
345  * @test_data platformInfo Structure without the platform information
346  * @pre_condition Call OCInit() API
347  * @procedure Call OCSetPlatformInfo() API
348  * @post_condition Call OCStop()
349  * @expected Should return OC_STACK_INVALID_PARAM
350  */
351 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
352 TEST_F(RICsdkServerTest_btc, OCSetPlatformInfo_USV_N)
353 {
354     m_result = m_pRICsdkHelper->initServer();
355     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
356
357     OCPlatformInfo platformInfo;
358     m_result = OCSetPlatformInfo(platformInfo);
359     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCSetPlatformInfo failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
360 }
361 #endif
362
363 /**
364  * @since 2016-07-19
365  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
366  * @see OCStackResult OCStop()
367  * @objective Test OCSetDeviceInfo with positive basic way
368  * @target OCStackResult OCSetDeviceInfo(OCDeviceInfo deviceInfo)
369  * @test_data deviceInfo Structure containing the device information
370  * @pre_condition Call OCInit() API
371  * @procedure Call OCSetDeviceInfo() API
372  * @post_condition Call OCStop()
373  * @expected Should return OC_STACK_OK
374  */
375 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
376 TEST_F(RICsdkServerTest_btc, OCSetDeviceInfo_SRC_FSV_P)
377 {
378     m_result = m_pRICsdkHelper->initServer();
379     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
380     static OCDeviceInfo deviceInfo = m_pRICsdkHelper->getDeviceInfo();
381
382     try
383     {
384         m_result = OCSetDeviceInfo(deviceInfo);
385         ASSERT_EQ(OC_STACK_OK,m_result)<< "OCSetDeviceInfo failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
386     }
387     catch (exception &e)
388     {
389         SET_FAILURE("Exception occured. Exception is " + std::string(e.what()));
390     }
391 }
392 #endif
393
394 /**
395  * @since 2016-07-19
396  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
397  * @see OCStackResult OCStop()
398  * @objective Test OCCreateResource with positive basic way
399  * @target OCStackResult OCCreateResource(OCResourceHandle *handle,
400  *       const char *resourceTypeName,
401  *       const char *resourceInterfaceName,
402  *       const char *uri,
403  *       OCEntityHandler entityHandler,
404  *       void* callbackParam,
405  *       uint8_t resourceProperties)
406  * @test_data     1. OCResourceHandle pointer to the created resource
407  *                 2. resourceTypeName "core.light"
408  *                 3. resourceInterfaceName "oc.if.a"
409  *                 4. uri "/a/light"
410  *                 5. entityHandler entity handler to be called
411  *                 6. callbackParam null
412  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
413  * @pre_condition Call OCInit() API
414  * @procedure Call OCCreateResource() API
415  * @post_condition Call OCStop()
416  * @expected Should return OC_STACK_OK
417  */
418 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
419 TEST_F(RICsdkServerTest_btc, OCCreateResource_SRC_P)
420 {
421     m_result = m_pRICsdkHelper->initServer();
422     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
423
424     m_result = OCCreateResource(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
425             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE);
426     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
427 }
428 #endif
429
430 /**
431  * @since 2016-07-19
432  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
433  * @see OCStackResult OCStop()
434  * @objective Test OCCreateResource with negative basic way using empty resourceTypeName
435  * @target OCStackResult OCCreateResource(OCResourceHandle *handle,
436  *       const char *resourceTypeName,
437  *       const char *resourceInterfaceName,
438  *       const char *uri,
439  *       OCEntityHandler entityHandler,
440  *       void* callbackParam,
441  *       uint8_t resourceProperties)
442  * @test_data     1. OCResourceHandle pointer to the created resource
443  *                 2. resourceTypeName ""
444  *                 3. resourceInterfaceName "oc.if.a"
445  *                 4. uri "/a/light"
446  *                 5. entityHandler entity handler to be called
447  *                 6. callbackParam null
448  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
449  * @pre_condition Call OCInit() API
450  * @procedure Call OCCreateResource() API
451  * @post_condition Call OCStop()
452  * @expected Should return OC_STACK_INVALID_PARAM
453  */
454 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
455 TEST_F(RICsdkServerTest_btc, OCCreateResourceTypeName_ESV_N)
456 {
457     m_result = m_pRICsdkHelper->initServer();
458     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
459
460     m_result = OCCreateResource(&m_handle, EMPTY_STRING, RESOURCE_INTERFACE_DEFAULT,
461             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE);
462     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
463 }
464 #endif
465
466 /**
467  * @since 2016-07-19
468  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
469  * @see OCStackResult OCStop()
470  * @objective Test OCCreateResource with negative basic way using empty uri
471  * @target OCStackResult OCCreateResource(OCResourceHandle *handle,
472  *       const char *resourceTypeName,
473  *       const char *resourceInterfaceName,
474  *       const char *uri,
475  *       OCEntityHandler entityHandler,
476  *       void* callbackParam,
477  *       uint8_t resourceProperties)
478  * @test_data     1. OCResourceHandle pointer to the created resource
479  *                 2. resourceTypeName "core.light"
480  *                 3. resourceInterfaceName "oc.mi.def"
481  *                 4. uri ""
482  *                 5. entityHandler entity handler to be called
483  *                 6. callbackParam null
484  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
485  * @pre_condition Call OCInit() API
486  * @procedure Call OCCreateResource() API
487  * @post_condition Call OCStop()
488  * @expected Should return OC_STACK_INVALID_URI
489  */
490 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
491 TEST_F(RICsdkServerTest_btc, OCCreateResourceURI_ESV_N)
492 {
493     m_result = m_pRICsdkHelper->initServer();
494     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
495
496     m_result = OCCreateResource(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
497     EMPTY_STRING, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE);
498     ASSERT_EQ(OC_STACK_INVALID_URI,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
499 }
500 #endif
501
502 /**
503  * @since 2018-03-15
504  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
505  * @see OCStackResult OCStop()
506  * @objective Test OCCreateResourceWithEp with positive basic way
507  * @target OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle,
508  *       const char *resourceTypeName,
509  *       const char *resourceInterfaceName,
510  *       const char *uri,
511  *       OCEntityHandler entityHandler,
512  *       void* callbackParam,
513  *       uint8_t resourceProperties
514  *        OCTpsSchemeFlags resourceTpsTypes)
515  * @test_data     1. OCResourceHandle pointer to the created resource
516  *                 2. resourceTypeName "core.light"
517  *                 3. resourceInterfaceName "oc.if.a"
518  *                 4. uri "/a/light"
519  *                 5. entityHandler entity handler to be called
520  *                 6. callbackParam null
521  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
522  *                 8. resourceTpsTypes "OC_ALL"
523  * @pre_condition Call OCInit() API
524  * @procedure Call OCCreateResourceWithEp() API
525  * @post_condition Call OCStop()
526  * @expected Should return OC_STACK_OK
527  */
528 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
529 TEST_F(RICsdkServerTest_btc, OCCreateResourceWithEp_SRC_P)
530 {
531     m_result = m_pRICsdkHelper->initServer();
532     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
533
534     m_result = OCCreateResourceWithEp(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
535             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE, OC_ALL);
536     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
537 }
538 #endif
539
540 /**
541  * @since 2018-03-15
542  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
543  * @see OCStackResult OCStop()
544  * @objective Test OCCreateResourceWithEp with positive basic way
545  * @target OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle,
546  *       const char *resourceTypeName,
547  *       const char *resourceInterfaceName,
548  *       const char *uri,
549  *       OCEntityHandler entityHandler,
550  *       void* callbackParam,
551  *       uint8_t resourceProperties
552  *       OCTpsSchemeFlags resourceTpsTypes)
553  * @test_data     1. OCResourceHandle pointer to the created resource
554  *                 2. resourceTypeName "core.light"
555  *                 3. resourceInterfaceName "oc.if.a"
556  *                 4. uri "/a/light"
557  *                 5. entityHandler entity handler to be called
558  *                 6. callbackParam null
559  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
560  *                 8. resourceTpsTypes "OC_COAP"
561  * @pre_condition Call OCInit() API
562  * @procedure Call OCCreateResourceWithEp() API
563  * @post_condition Call OCStop()
564  * @expected Should return OC_STACK_OK
565  */
566 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
567 TEST_F(RICsdkServerTest_btc, OCCreateResourceWithEpCOAP_SRC_P)
568 {
569     m_result = m_pRICsdkHelper->initServer();
570     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
571
572     m_result = OCCreateResourceWithEp(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
573             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE, OC_COAP);
574     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
575 }
576 #endif
577
578 /**
579  * @since 2018-03-15
580  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
581  * @see OCStackResult OCStop()
582  * @objective Test OCCreateResourceWithEp with positive basic way
583  * @target OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle,
584  *       const char *resourceTypeName,
585  *       const char *resourceInterfaceName,
586  *       const char *uri,
587  *       OCEntityHandler entityHandler,
588  *       void* callbackParam,
589  *       uint8_t resourceProperties)
590  * @test_data     1. OCResourceHandle pointer to the created resource
591  *                 2. resourceTypeName "core.light"
592  *                 3. resourceInterfaceName "oc.if.a"
593  *                 4. uri "/a/light"
594  *                 5. entityHandler entity handler to be called
595  *                 6. callbackParam null
596  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
597  *                 8. resourceTpsTypes "OC_COAPS"
598  * @pre_condition Call OCInit() API
599  * @procedure Call OCCreateResourceWithEp() API
600  * @post_condition Call OCStop()
601  * @expected Should return OC_STACK_OK
602  */
603 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
604 TEST_F(RICsdkServerTest_btc, OCCreateResourceWithEpCOAPS_SRC_P)
605 {
606     m_result = m_pRICsdkHelper->initServer();
607     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
608
609     m_result = OCCreateResourceWithEp(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
610             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE, OC_COAPS);
611     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
612 }
613 #endif
614
615 /**
616  * @since 2018-03-15
617  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
618  * @see OCStackResult OCStop()
619  * @objective Test OCCreateResourceWithEp with negative basic way using empty resourceTypeName
620  * @target OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle,
621  *       const char *resourceTypeName,
622  *       const char *resourceInterfaceName,
623  *       const char *uri,
624  *       OCEntityHandler entityHandler,
625  *       void* callbackParam,
626  *       uint8_t resourceProperties
627  *       OCTpsSchemeFlags resourceTpsTypes)
628  * @test_data      1. OCResourceHandle pointer to the created resource
629  *                 2. resourceTypeName ""
630  *                 3. resourceInterfaceName "oc.if.a"
631  *                 4. uri "/a/light"
632  *                 5. entityHandler entity handler to be called
633  *                 6. callbackParam null
634  *                 7. resourceProperties OC_DISCOVERABLE|OC_OBSERVABLE
635  *                 8. resourceTpsTypes "OC_NO_TPS"
636  * @pre_condition Call OCInit() API
637  * @procedure Call OCCreateResourceWithEp() API
638  * @post_condition Call OCStop()
639  * @expected Should return OC_STACK_INVALID_PARAM
640  */
641 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
642 TEST_F(RICsdkServerTest_btc, OCCreateResourceWithEp_NV_N)
643 {
644     m_result = m_pRICsdkHelper->initServer();
645     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
646
647     m_result = OCCreateResourceWithEp(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
648             RESOURCE_URI_LIGHT, OCEntityHandlerCb, NULL, OC_DISCOVERABLE | OC_OBSERVABLE, OC_NO_TPS);
649     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
650 }
651 #endif
652
653 /**
654  * @since 2018-03-15
655  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
656  * @see OCStackResult OCStop()
657  * @objective Test OCGetSupportedEndpointTpsFlags() with positive basic way
658  * @target OCTpsSchemeFlags OCGetSupportedEndpointTpsFlags();
659  * @Returns flags of supported endpoint TPS on stack
660  * @pre_condition Call OCInit() API
661  * @procedure Call OCGetSupportedEndpointTpsFlags() API
662  * @expected Should return OC_STACK_OK
663  */
664 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
665 TEST_F(RICsdkServerTest_btc, OCGetSupportedEndpointTpsFlags_SRC_P)
666 {
667     m_result = m_pRICsdkHelper->initServer();
668     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
669     OCTpsSchemeFlags schemeflags;
670     schemeflags = OCGetSupportedEndpointTpsFlags();
671     ASSERT_EQ(OC_STACK_OK,m_result);
672 }
673 #endif
674
675 /**
676  * @since 2018-03-15
677  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
678  * @see OCStackResult OCStop()
679  * @objective Test OCGetResourceHandleAtUri() with positive basic way
680  * @Target OCGetResourceHandleAtUri(const char *uri)
681  * @test_data   Uri of resource to get Resource handle
682   *             uri = OC_RSRVD_WELL_KNOWN_URI                
683  * @pre_condition Call OCInit() API
684  * @procedure Call OCGetResourceHandleAtUri() API
685  * @post_condition Call OCStop()
686  * @expected Should return OC_STACK_OK
687  */
688 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
689 TEST_F(RICsdkServerTest_btc, OCGetResourceHandleAtUri_SRC_P)
690 {
691     m_result = m_pRICsdkHelper->initServer();
692     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
693
694     m_handle = OCGetResourceHandleAtUri(OC_RSRVD_WELL_KNOWN_URI);
695     ASSERT_EQ(OC_STACK_OK, m_result)<< "OCDoResponse failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
696 }
697 #endif
698
699 /**
700  * @since 2018-03-15
701  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
702  * @see OCStackResult OCStop()
703  * @objective Test OCGetResourceHandleAtUri() with positive basic way
704  * @Target OCGetResourceHandleAtUri(const char *uri)
705  * @test_data   Uri of resource to get Resource handle
706   *             uri = OC_RSRVD_DEVICE_URI                
707  * @pre_condition Call OCInit() API
708  * @procedure Call OCGetResourceHandleAtUri() API
709  * @post_condition Call OCStop()
710  * @expected Should return OC_STACK_OK
711  */
712 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
713 TEST_F(RICsdkServerTest_btc, OCGetResourceHandleAtUriDeviceURI_SRC_P)
714 {
715     m_result = m_pRICsdkHelper->initServer();
716     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
717
718     m_handle = OCGetResourceHandleAtUri(OC_RSRVD_DEVICE_URI);
719     ASSERT_EQ(OC_STACK_OK, m_result)<< "OCDoResponse failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
720 }
721 #endif
722
723 /**
724  * @since 2018-03-15
725  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
726  * @see OCStackResult OCStop()
727  * @objective Test OCGetResourceHandleAtUri() with negative basic way
728  * @Target OCGetResourceHandleAtUri(const char *uri)
729  * @test_data   Uri of resource to get Resource handle
730  *              uri = NULL                 
731  * @pre_condition Call OCInit() API
732  * @procedure Call OCGetResourceHandleAtUri() API
733  * @post_condition Call OCStop()
734  * @expected Should return OC_STACK_OK
735  */
736 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
737 TEST_F(RICsdkServerTest_btc, OCGetResourceHandleAtUri_NV_V)
738 {
739     m_result = m_pRICsdkHelper->initServer();
740     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
741
742     m_handle = OCGetResourceHandleAtUri(NULL);
743     ASSERT_EQ(NULL, m_result)<< "OCDoResponse failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
744 }
745 #endif
746
747 /**
748  * @since 2016-07-19
749  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
750  * @see OCStackResult OCStop()
751  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
752  *       const char *resourceTypeName,
753  *       const char *resourceInterfaceName,
754  *       const char *uri,
755  *       OCEntityHandler entityHandler,
756  *       void* callbackParam,
757  *       uint8_t resourceProperties)
758  * @objective Test OCDeleteResource with positive basic way
759  * @target OCDeleteResource(OCResourceHandle handle)
760  * @test_data OCResourceHandle pointer to the created resource
761  * @pre_condition Call OCInit() API
762  * @procedure Call OCCreateResource() API
763  * @post_condition Call OCStop()
764  * @expected Should return OC_STACK_OK
765  */
766 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
767 TEST_F(RICsdkServerTest_btc, OCDeleteResource_SRC_P)
768 {
769     m_result = m_pRICsdkHelper->initServer();
770     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
771
772     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
773             RESOURCE_URI_LIGHT);
774     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
775
776     m_result = OCDeleteResource(m_handle);
777     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCDeleteResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
778 }
779 #endif
780
781 /**
782  * @since 2016-07-19
783  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
784  * @see OCStackResult OCStop()
785  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
786  *       const char *resourceTypeName,
787  *       const char *resourceInterfaceName,
788  *       const char *uri,
789  *       OCEntityHandler entityHandler,
790  *       void* callbackParam,
791  *       uint8_t resourceProperties)
792  * @objective Test OCDeleteResource with negative basic way using null value as handle
793  * @target OCDeleteResource(OCResourceHandle handle)
794  * @test_data OCResourceHandle null
795  * @pre_condition Call OCInit() API
796  * @procedure Call OCCreateResource() API
797  * @post_condition Call OCStop()
798  * @expected Should return OC_STACK_INVALID_PARAM
799  */
800 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
801 TEST_F(RICsdkServerTest_btc, OCDeleteResourceResourceHandle_NV_N)
802 {
803     m_result = m_pRICsdkHelper->initServer();
804     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
805
806     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
807             RESOURCE_URI_LIGHT);
808     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
809
810     m_result = OCDeleteResource(NULL);
811     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCDeleteResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
812 }
813 #endif
814
815 /**
816  * @since 2016-07-19
817  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
818  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
819  *       const char *resourceTypeName,
820  *       const char *resourceInterfaceName,
821  *       const char *uri,
822  *       OCEntityHandler entityHandler,
823  *       void* callbackParam,
824  *       uint8_t resourceProperties)
825  * @see OCStackResult OCStop()
826  * @objective Test OCBindResourceTypeToResource with positive basic way
827  * @target OCStackResult OCBindResourceTypeToResource(OCResourceHandle handle,
828  *       const char *resourceTypeName)
829  * @test_data         1. OCResourceHandle pointer to the created resource
830  *                     2. resourceTypeName "core.fan"
831  * @pre_condition     1. Call OCInit() API
832  *                     2. Call OCCreateResource() API
833  * @procedure Call OCBindResourceTypeToResource() API
834  * @post_condition Call OCStop()
835  * @expected Should return OC_STACK_OK
836  */
837 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
838 TEST_F(RICsdkServerTest_btc, OCBindResourceTypeToResource_SRC_P)
839 {
840     m_result = m_pRICsdkHelper->initServer();
841     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
842
843     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
844             RESOURCE_URI_LIGHT);
845     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
846
847     m_result = OCBindResourceTypeToResource(m_handle, RESOURCE_TYPE_FAN);
848     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResourceTypeToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
849 }
850 #endif
851
852 /**
853  * @since 2016-07-19
854  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
855  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
856  *       const char *resourceTypeName,
857  *       const char *resourceInterfaceName,
858  *       const char *uri,
859  *       OCEntityHandler entityHandler,
860  *       void* callbackParam,
861  *       uint8_t resourceProperties)
862  * @see OCStackResult OCStop()
863  * @objective Test OCBindResourceTypeToResource with negative basic way using null handle
864  * @target OCStackResult OCBindResourceTypeToResource(OCResourceHandle handle,
865  *       const char *resourceTypeName)
866  * @test_data         1. OCResourceHandle null
867  *                     2. resourceTypeName "core.fan
868  * @pre_condition     1. Call OCInit() API
869  *                     2. Call OCCreateResource() API
870  * @procedure Call OCBindResourceTypeToResource() API
871  * @post_condition Call OCStop()
872  * @expected Should return OC_STACK_ERROR
873  */
874 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
875 TEST_F(RICsdkServerTest_btc, OCBindResourceTypeToResourceResourceHandle_NV_N)
876 {
877     m_result = m_pRICsdkHelper->initServer();
878     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
879
880     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
881             RESOURCE_URI_LIGHT);
882     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
883
884     m_result = OCBindResourceTypeToResource(NULL, RESOURCE_TYPE_LIGHT);
885     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCBindResourceTypeToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
886 }
887 #endif
888
889 /**
890  * @since 2016-07-19
891  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
892  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
893  *       const char *resourceTypeName,
894  *       const char *resourceInterfaceName,
895  *       const char *uri,
896  *       OCEntityHandler entityHandler,
897  *       void* callbackParam,
898  *       uint8_t resourceProperties)
899  * @see OCStackResult OCStop()
900  * @objective Test OCBindResourceTypeToResource with negative basic way using null resource type
901  * @target OCStackResult OCBindResourceTypeToResource(OCResourceHandle handle,
902  *       const char *resourceTypeName)
903  * @test_data         1. OCResourceHandle pointer to the created resource
904  *                     2. resourceTypeName null
905  * @pre_condition     1. Call OCInit() API
906  *                     2. Call OCCreateResource() API
907  * @procedure Call OCBindResourceTypeToResource() API
908  * @post_condition Call OCStop()
909  * @expected Should return OC_STACK_INVALID_PARAM
910  */
911 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
912 TEST_F(RICsdkServerTest_btc, OCBindResourceTypeToResourceResourceType_NV_N)
913 {
914     m_result = m_pRICsdkHelper->initServer();
915     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
916
917     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
918             RESOURCE_URI_LIGHT);
919     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
920
921     m_result = OCBindResourceTypeToResource(m_handle, NULL);
922     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCBindResourceTypeToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
923 }
924 #endif
925
926 /**
927  * @since 2016-07-19
928  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
929  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
930  *       const char *resourceTypeName,
931  *       const char *resourceInterfaceName,
932  *       const char *uri,
933  *       OCEntityHandler entityHandler,
934  *       void* callbackParam,
935  *       uint8_t resourceProperties)
936  * @see OCStackResult OCStop()
937  * @objective Test OCBindResourceInterfaceToResource with positive basic way
938  * @target OCStackResult OCBindResourceInterfaceToResource(OCResourceHandle handle,
939  *       const char *resourceInterfaceName)
940  * @test_data         1. OCResourceHandle pointer to the created resource
941  *                     2. resourceInterfaceName "core.rw"
942  * @pre_condition     1. Call OCInit() API
943  *                     2. Call OCCreateResource() API
944  * @procedure Call OCBindResourceInterfaceToResource() API
945  * @post_condition Call OCStop()
946  * @expected Should return OC_STACK_OK
947  */
948 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
949 TEST_F(RICsdkServerTest_btc, OCBindResourceInterfaceToResource_SRC_P)
950 {
951     m_result = m_pRICsdkHelper->initServer();
952     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
953
954     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
955             RESOURCE_URI_LIGHT);
956     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
957
958     m_result = OCBindResourceInterfaceToResource(m_handle, RESOURCE_INTERFACE_RW);
959     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResourceInterfaceToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
960 }
961 #endif
962
963 /**
964  * @since 2016-07-19
965  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
966  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
967  *       const char *resourceTypeName,
968  *       const char *resourceInterfaceName,
969  *       const char *uri,
970  *       OCEntityHandler entityHandler,
971  *       void* callbackParam,
972  *       uint8_t resourceProperties)
973  * @see OCStackResult OCStop()
974  * @objective Test OCBindResourceInterfaceToResource with negative basic way using null handle
975  * @target OCStackResult OCBindResourceInterfaceToResource(OCResourceHandle handle,
976  *        const char *resourceInterfaceName)
977  * @test_data         1. OCResourceHandle null
978  *                     2. resourceInterfaceName "core.rw"
979  * @pre_condition     1. Call OCInit() API
980  *                     2. Call OCCreateResource() API
981  * @procedure Call OCBindResourceInterfaceToResource() API
982  * @post_condition Call OCStop()
983  * @expected Should return OC_STACK_ERROR
984  */
985 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
986 TEST_F(RICsdkServerTest_btc, OCBindResourceInterfaceToResourceResourceHandle_NV_N)
987 {
988     m_result = m_pRICsdkHelper->initServer();
989     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
990
991     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
992             RESOURCE_URI_LIGHT);
993     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
994
995     m_result = OCBindResourceInterfaceToResource(NULL, RESOURCE_INTERFACE_RW);
996     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCBindResourceInterfaceToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
997 }
998 #endif
999
1000 /**
1001  * @since 2016-07-19
1002  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1003  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1004  *       const char *resourceTypeName,
1005  *       const char *resourceInterfaceName,
1006  *       const char *uri,
1007  *       OCEntityHandler entityHandler,
1008  *       void* callbackParam,
1009  *       uint8_t resourceProperties)
1010  * @see OCStackResult OCStop()
1011  * @objective Test OCBindResourceInterfaceToResource with negative basic way using null interface name
1012  * @target OCStackResult OCBindResourceInterfaceToResource(OCResourceHandle handle,
1013  *        const char *resourceInterfaceName)
1014  * @test_data         1. OCResourceHandle pointer to the created resource
1015  *                     2. resourceInterfaceName null
1016  * @pre_condition     1. Call OCInit() API
1017  *                     2. Call OCCreateResource() API
1018  * @procedure Call OCBindResourceInterfaceToResource() API
1019  * @post_condition Call OCStop()
1020  * @expected Should return OC_STACK_INVALID_PARAM
1021  */
1022 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1023 TEST_F(RICsdkServerTest_btc, OCBindResourceInterfaceToResourceResourceType_NV_N)
1024 {
1025     m_result = m_pRICsdkHelper->initServer();
1026     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1027
1028     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1029             RESOURCE_URI_LIGHT);
1030     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1031
1032     m_result = OCBindResourceInterfaceToResource(m_handle, NULL);
1033     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCBindResourceInterfaceToResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1034 }
1035 #endif
1036
1037 /**
1038  * @since 2016-07-19
1039  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1040  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1041  *       const char *resourceTypeName,
1042  *       const char *resourceInterfaceName,
1043  *       const char *uri,
1044  *       OCEntityHandler entityHandler,
1045  *       void* callbackParam,
1046  *       uint8_t resourceProperties)
1047  * @see OCStackResult OCStop()
1048  * @objective Test OCBindResource with positive basic way
1049  * @target OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1050  * @test_data         1. collectionHandle pointer to the collection resource
1051  *                     2. resourceHandle pointer to the child resource
1052  * @pre_condition     1. Call OCInit() API
1053  *                     2. Call OCCreateResource() API
1054  * @procedure Call OCBindResource() API
1055  * @post_condition Call OCStop()
1056  * @expected Should return OC_STACK_OK
1057  */
1058 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1059 TEST_F(RICsdkServerTest_btc, OCBindResource_SRC_P)
1060 {
1061     m_result = m_pRICsdkHelper->initServer();
1062     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1063
1064     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1065             RESOURCE_URI_LIGHT);
1066     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1067
1068     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1069             RESOURCE_URI_FAN);
1070     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1071
1072     m_result = OCBindResource(m_fanHandle, m_lightHandle);
1073     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1074 }
1075 #endif
1076
1077 /**
1078  * @since 2016-07-19
1079  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1080  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1081  *       const char *resourceTypeName,
1082  *       const char *resourceInterfaceName,
1083  *       const char *uri,
1084  *       OCEntityHandler entityHandler,
1085  *       void* callbackParam,
1086  *       uint8_t resourceProperties)
1087  * @see OCStackResult OCStop()
1088  * @objective Test OCBindResource with negative basic way using null collection handle
1089  * @target OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1090  * @test_data         1. collectionHandle null
1091  *                     2. resourceHandle pointer to the child resource
1092  * @pre_condition     1. Call OCInit() API
1093  *                     2. Call OCCreateResource() API
1094  * @procedure Call OCBindResource() API
1095  * @post_condition Call OCStop()
1096  * @expected Should return OC_STACK_ERROR
1097  */
1098 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1099 TEST_F(RICsdkServerTest_btc, OCBindResourceCollectionHandle_NV_N)
1100 {
1101     m_result = m_pRICsdkHelper->initServer();
1102     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1103
1104     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1105             RESOURCE_URI_LIGHT);
1106     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1107
1108     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1109             RESOURCE_URI_FAN);
1110     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1111
1112     m_result = OCBindResource(NULL, m_lightHandle);
1113     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1114 }
1115 #endif
1116
1117 /**
1118  * @since 2016-07-19
1119  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1120  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1121  *       const char *resourceTypeName,
1122  *       const char *resourceInterfaceName,
1123  *       const char *uri,
1124  *       OCEntityHandler entityHandler,
1125  *       void* callbackParam,
1126  *       uint8_t resourceProperties)
1127  * @see OCStackResult OCStop()
1128  * @objective Test OCBindResource with negative basic way using null resource handle
1129  * @target OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1130  * @test_data         1. collectionHandle pointer to the collection resource
1131  *                     2. resourceHandle null
1132  * @pre_condition     1. Call OCInit() API
1133  *                     2. Call OCCreateResource() API
1134  * @procedure Call OCBindResource() API
1135  * @post_condition Call OCStop()
1136  * @expected Should return OC_STACK_ERROR
1137  */
1138 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1139 TEST_F(RICsdkServerTest_btc, OCBindResourceResourceHandle_NV_N)
1140 {
1141     m_result = m_pRICsdkHelper->initServer();
1142     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1143
1144     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1145             RESOURCE_URI_LIGHT);
1146     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1147
1148     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1149             RESOURCE_URI_FAN);
1150     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1151
1152     m_result = OCBindResource(m_fanHandle, NULL);
1153     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1154 }
1155 #endif
1156
1157 /**
1158  * @since 2016-07-19
1159  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1160  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1161  *       const char *resourceTypeName,
1162  *       const char *resourceInterfaceName,
1163  *       const char *uri,
1164  *       OCEntityHandler entityHandler,
1165  *       void* callbackParam,
1166  *       uint8_t resourceProperties)
1167  * @see OCStackResult OCStop()
1168  * @objective Test OCBindResource with negative basic way using same handle as collection and resource
1169  * @target OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1170  * @test_data         1. collectionHandle pointer to the resource
1171  *                     2. resourceHandle pointer to the same resource
1172  * @pre_condition     1. Call OCInit() API
1173  *                     2. Call OCCreateResource() API
1174  * @procedure Call OCBindResource() API
1175  * @post_condition Call OCStop()
1176  * @expected Should return OC_STACK_INVALID_PARAM
1177  */
1178 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1179 TEST_F(RICsdkServerTest_btc, OCBindResourceSameHandle_ECRC_N)
1180 {
1181     m_result = m_pRICsdkHelper->initServer();
1182     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1183
1184     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1185             RESOURCE_URI_LIGHT);
1186     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1187
1188     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1189             RESOURCE_URI_FAN);
1190     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1191
1192     m_result = OCBindResource(m_lightHandle, m_lightHandle);
1193     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1194 }
1195 #endif
1196
1197 /**
1198  * @since 2016-07-19
1199  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1200  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1201  *       const char *resourceTypeName,
1202  *       const char *resourceInterfaceName,
1203  *       const char *uri,
1204  *       OCEntityHandler entityHandler,
1205  *       void* callbackParam,
1206  *       uint8_t resourceProperties)
1207  * @see OCStackResult OCStop()
1208  * @see OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1209  * @objective Test OCBindResourceInterfaceToResource with positive basic way
1210  * @target OCStackResult OCUnBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1211  * @test_data         1. collectionHandle pointer to the collection resource
1212  *                     2. resourceHandle pointer to the child resource
1213  * @pre_condition     1. Call OCInit() API
1214  *                     2. Call OCCreateResource() API
1215  * @procedure Call OCUnBindResource() API
1216  * @post_condition Call OCStop()
1217  * @expected Should return OC_STACK_OK
1218  */
1219 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1220 TEST_F(RICsdkServerTest_btc, OCUnBindResource_SRC_P)
1221 {
1222     m_result = m_pRICsdkHelper->initServer();
1223     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1224
1225     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1226             RESOURCE_URI_LIGHT);
1227     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1228
1229     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1230             RESOURCE_URI_FAN);
1231     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1232
1233     m_result = OCBindResource(m_fanHandle, m_lightHandle);
1234     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1235
1236     m_result = OCUnBindResource(m_fanHandle, m_lightHandle);
1237     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCUnBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1238 }
1239 #endif
1240
1241 /**
1242  * @since 2016-07-19
1243  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1244  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1245  *       const char *resourceTypeName,
1246  *       const char *resourceInterfaceName,
1247  *       const char *uri,
1248  *       OCEntityHandler entityHandler,
1249  *       void* callbackParam,
1250  *       uint8_t resourceProperties)
1251  * @see OCStackResult OCStop()
1252  * @see OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1253  * @objective Test OCBindResourceInterfaceToResource with negative basic way using null collection handle
1254  * @target OCStackResult OCUnBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1255  * @test_data         1. collectionHandle null
1256  *                     2. resourceHandle pointer to the child resource
1257  * @pre_condition     1. Call OCInit() API
1258  *                     2. Call OCCreateResource() API
1259  * @procedure Call OCUnBindResource() API
1260  * @post_condition Call OCStop()
1261  * @expected Should return OC_STACK_ERROR
1262  */
1263 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1264 TEST_F(RICsdkServerTest_btc, OCUnBindResourceCollectionHandle_NV_N)
1265 {
1266     m_result = m_pRICsdkHelper->initServer();
1267     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1268
1269     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1270             RESOURCE_URI_LIGHT);
1271     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1272
1273     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1274             RESOURCE_URI_FAN);
1275     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1276
1277     m_result = OCBindResource(m_fanHandle, m_lightHandle);
1278     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1279
1280     m_result = OCUnBindResource(NULL, m_lightHandle);
1281     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCUnBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1282 }
1283 #endif
1284
1285 /**
1286  * @since 2016-07-19
1287  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1288  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1289  *       const char *resourceTypeName,
1290  *       const char *resourceInterfaceName,
1291  *       const char *uri,
1292  *       OCEntityHandler entityHandler,
1293  *       void* callbackParam,
1294  *       uint8_t resourceProperties)
1295  * @see OCStackResult OCStop()
1296  * @see OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1297  * @objective Test OCBindResourceInterfaceToResource with negative basic way using null resource handle
1298  * @target OCStackResult OCUnBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1299  * @test_data         1. collectionHandle pointer to the collection resource
1300  *                     2. resourceHandle null
1301  * @pre_condition     1. Call OCInit() API
1302  *                     2. Call OCCreateResource() API
1303  * @procedure Call OCUnBindResource() API
1304  * @post_condition Call OCStop()
1305  * @expected Should return OC_STACK_ERROR
1306  */
1307 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1308 TEST_F(RICsdkServerTest_btc, OCUnBindResourceResourceHandle_NV_N)
1309 {
1310     m_result = m_pRICsdkHelper->initServer();
1311     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1312
1313     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1314             RESOURCE_URI_LIGHT);
1315     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1316
1317     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1318             RESOURCE_URI_FAN);
1319     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1320
1321     m_result = OCBindResource(m_fanHandle, m_lightHandle);
1322     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1323
1324     m_result = OCUnBindResource(m_fanHandle, NULL);
1325     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCUnBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1326 }
1327 #endif
1328
1329 /**
1330  * @since 2016-07-19
1331  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1332  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1333  *       const char *resourceTypeName,
1334  *       const char *resourceInterfaceName,
1335  *       const char *uri,
1336  *       OCEntityHandler entityHandler,
1337  *       void* callbackParam,
1338  *       uint8_t resourceProperties)
1339  * @see OCStackResult OCStop()
1340  * @see OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1341  * @objective Test OCBindResourceInterfaceToResource with negative basic way using same handle as collection and resource
1342  * @target OCStackResult OCUnBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
1343  * @test_data         1. collectionHandle pointer to the collection resource
1344  *                     2. resourceHandle null
1345  * @pre_condition     1. Call OCInit() API
1346  *                     2. Call OCCreateResource() API
1347  * @procedure Call OCUnBindResource() API
1348  * @post_condition Call OCStop()
1349  * @expected Should return OC_STACK_INVALID_PARAM
1350  */
1351 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1352 TEST_F(RICsdkServerTest_btc, OCUnBindResourceSameHandle_ECRC_N)
1353 {
1354     m_result = m_pRICsdkHelper->initServer();
1355     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1356
1357     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1358             RESOURCE_URI_LIGHT);
1359     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1360
1361     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
1362             RESOURCE_URI_FAN);
1363     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
1364
1365     m_result = OCBindResource(m_fanHandle, m_lightHandle);
1366     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1367
1368     m_result = OCUnBindResource(m_lightHandle, m_lightHandle);
1369     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCUnBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1370 }
1371 #endif
1372
1373 /**
1374  * @since 2016-07-19
1375  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1376  * @see OCStackResult OCStop()
1377  * @objective Test OCStartPresence with positive basic way
1378  * @target OCStackResult OCStartPresence(const uint32_t ttl)
1379  * @test_data ttl 0 and 50
1380  * @pre_condition Call OCInit() API
1381  * @procedure Call OCStartPresence() API
1382  * @post_condition Call OCStop()
1383  * @expected Should return OC_STACK_OK
1384  */
1385 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1386 TEST_F(RICsdkServerTest_btc, OCStartPresence_SRC_P)
1387 {
1388     m_result = m_pRICsdkHelper->initServer();
1389     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1390
1391     const uint32_t ttl = 0;
1392     m_result = OCStartPresence(ttl);
1393     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStartPresence failed for time 0. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1394
1395     const uint32_t ttl2 = 50;
1396     m_result = OCStartPresence(ttl2);
1397     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStartPresence failed for time 10. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1398 }
1399 #endif
1400
1401 /**
1402  * @since 2016-07-19
1403  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1404  * @see OCStackResult OCStop()
1405  * @objective Test OCStopPresence with positive basic way
1406  * @target OCStackResult OCStopPresence()
1407  * @test_data none
1408  * @pre_condition Call OCInit() API
1409  * @procedure Call OCStop()Presence() API
1410  * @post_condition Call OCStop()
1411  * @expected Should return OC_STACK_OK
1412  */
1413 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1414 TEST_F(RICsdkServerTest_btc, OCStopPresence_SRC_P)
1415 {
1416     m_result = m_pRICsdkHelper->initServer();
1417     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1418
1419     const uint32_t ttl = 0;
1420     m_result = OCStartPresence(ttl);
1421     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStartPresence failed for time 10. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1422
1423     m_result = OCStopPresence();
1424     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStopPresence failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1425 }
1426 #endif
1427
1428 /**
1429  * @since 2016-07-19
1430  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1431  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1432  *       const char *resourceTypeName,
1433  *       const char *resourceInterfaceName,
1434  *       const char *uri,
1435  *       OCEntityHandler entityHandler,
1436  *       void* callbackParam,
1437  *       uint8_t resourceProperties)
1438  * @see OCStackResult OCStop()
1439  * @objective Test OCNotifyAllObservers with positive basic way using low quality of service
1440  * @target OCStackResult OCNotifyAllObservers(OCResourceHandle handle, OCQualityOfService qos)
1441  * @test_data         1. OCResourceHandle pointer to the created resource
1442  *                     2. OCQualityOfService OC_LOW_QOS
1443  * @pre_condition     1. Call OCInit() API
1444  *                     2. Call OCCreateResource() API
1445  * @procedure Call OCNotifyAllObservers() API
1446  * @post_condition Call OCStop()
1447  * @expected Should return OC_STACK_NO_OBSERVERS
1448  */
1449 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1450 TEST_F(RICsdkServerTest_btc, OCNotifyAllObserversNON_SRC_P)
1451 {
1452     m_result = m_pRICsdkHelper->initServer();
1453     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1454
1455     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1456             RESOURCE_URI_LIGHT);
1457     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1458
1459     OCQualityOfService qos = OC_LOW_QOS;
1460     m_result = OCNotifyAllObservers(m_handle, qos);
1461     ASSERT_EQ(OC_STACK_NO_OBSERVERS,m_result)<< "OCNotifyAllObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1462 }
1463 #endif
1464
1465 /**
1466  * @since 2016-07-19
1467  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1468  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1469  *       const char *resourceTypeName,
1470  *       const char *resourceInterfaceName,
1471  *       const char *uri,
1472  *       OCEntityHandler entityHandler,
1473  *       void* callbackParam,
1474  *       uint8_t resourceProperties)
1475  * @see OCStackResult OCStop()
1476  * @objective Test OCNotifyAllObservers with positive basic way using high quality of service
1477  * @target OCStackResult OCNotifyAllObservers(OCResourceHandle handle, OCQualityOfService qos)
1478  * @test_data         1. OCResourceHandle pointer to the created resource
1479  *                     2. OCQualityOfService OC_HIGH_QOS
1480  * @pre_condition     1. Call OCInit() API
1481  *                     2. Call OCCreateResource() API
1482  * @procedure Call OCNotifyAllObservers() API
1483  * @post_condition Call OCStop()
1484  * @expected Should return OC_STACK_NO_OBSERVERS
1485  */
1486 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1487 TEST_F(RICsdkServerTest_btc, OCNotifyAllObserversCON_SRC_P)
1488 {
1489     m_result = m_pRICsdkHelper->initServer();
1490     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1491
1492     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1493             RESOURCE_URI_LIGHT);
1494     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1495
1496     OCQualityOfService qos = OC_HIGH_QOS;
1497     m_result = OCNotifyAllObservers(m_handle, qos);
1498     ASSERT_EQ(OC_STACK_NO_OBSERVERS,m_result)<< "OCNotifyAllObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1499 }
1500 #endif
1501
1502 /**
1503  * @since 2016-07-19
1504  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1505  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1506  *       const char *resourceTypeName,
1507  *       const char *resourceInterfaceName,
1508  *       const char *uri,
1509  *       OCEntityHandler entityHandler,
1510  *       void* callbackParam,
1511  *       uint8_t resourceProperties)
1512  * @see OCStackResult OCStop()
1513  * @objective Test OCNotifyAllObservers with negative basic way using null resource handle
1514  * @target OCStackResult OCNotifyAllObservers(OCResourceHandle handle, OCQualityOfService qos)
1515  * @test_data         1. OCResourceHandle pointer to the created resource
1516  *                     2. OCQualityOfService OC_HIGH_QOS
1517  * @pre_condition     1. Call OCInit() API
1518  *                     2. Call OCCreateResource() API
1519  * @procedure Call OCNotifyAllObservers() API
1520  * @post_condition Call OCStop()
1521  * @expected Should return OC_STACK_ERROR
1522  */
1523 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1524 TEST_F(RICsdkServerTest_btc, OCNotifyAllObserversResourceHandle_NV_N)
1525 {
1526     m_result = m_pRICsdkHelper->initServer();
1527     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1528
1529     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1530             RESOURCE_URI_LIGHT);
1531     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1532
1533     OCQualityOfService qos = OC_HIGH_QOS;
1534     m_result = OCNotifyAllObservers(NULL, qos);
1535     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCNotifyAllObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1536 }
1537 #endif
1538
1539 /**
1540  * @since 2016-07-19
1541  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1542  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1543  *       const char *resourceTypeName,
1544  *       const char *resourceInterfaceName,
1545  *       const char *uri,
1546  *       OCEntityHandler entityHandler,
1547  *       void* callbackParam,
1548  *       uint8_t resourceProperties)
1549  * @see OCStackResult OCStop()
1550  * @objective Test OCNotifyListOfObservers with positive basic way using low quality of service
1551  * @target OCNotifyListOfObservers (OCResourceHandle handle,
1552  *                            OCObservationId  *obsIdList,
1553  *                            uint8_t          numberOfIds,
1554  *                            const OCRepPayload *payload,
1555  *                            OCQualityOfService qos)
1556  * @test_data         1. OCResourceHandle pointer to the created resource
1557  *                     2. OCObservationId List of observation IDs that need to be notified.
1558  *                     3. numberOfIds 0
1559  *                     4. OCRepPayload Object representing the notification
1560  *                     5. OCQualityOfService OC_LOW_QOS
1561  * @pre_condition     1. Call OCInit() API
1562  *                     2. Call OCCreateResource() API
1563  * @procedure Call OCNotifyListOfObservers() API
1564  * @post_condition Call OCStop()
1565  * @expected Should return OC_STACK_OK
1566  */
1567 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1568 TEST_F(RICsdkServerTest_btc, OCNotifyListOfObserversNON_SRC_P)
1569 {
1570     m_result = m_pRICsdkHelper->initServer();
1571     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1572
1573     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1574             RESOURCE_URI_LIGHT);
1575     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1576
1577     OCObservationId obsIdList = 1;
1578     uint8_t numberOfIds = 0;
1579     OCRepPayload payload;
1580     payload.uri = "uri";
1581     const OCRepPayload payload2 = payload;
1582     OCQualityOfService qos = OC_LOW_QOS;
1583
1584     m_result = OCNotifyListOfObservers(m_handle, &obsIdList, numberOfIds, &payload2, qos);
1585     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1586 }
1587 #endif
1588
1589 /**
1590  * @since 2016-07-19
1591  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1592  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1593  *       const char *resourceTypeName,
1594  *       const char *resourceInterfaceName,
1595  *       const char *uri,
1596  *       OCEntityHandler entityHandler,
1597  *       void* callbackParam,
1598  *       uint8_t resourceProperties)
1599  * @see OCStackResult OCStop()
1600  * @objective Test OCNotifyListOfObservers with positive basic way using high quality of service
1601  * @target OCNotifyListOfObservers (OCResourceHandle handle,
1602  *                            OCObservationId  *obsIdList,
1603  *                            uint8_t          numberOfIds,
1604  *                            const OCRepPayload *payload,
1605  *                            OCQualityOfService qos)
1606  * @test_data         1. OCResourceHandle pointer to the created resource
1607  *                     2. OCObservationId List of observation IDs that need to be notified.
1608  *                     3. numberOfIds 0
1609  *                     4. OCRepPayload Object representing the notification
1610  *                     5. OCQualityOfService OC_HIGH_QOS
1611  * @pre_condition     1. Call OCInit() API
1612  *                     2. Call OCCreateResource() API
1613  * @procedure Call OCNotifyListOfObservers() API
1614  * @post_condition Call OCStop()
1615  * @expected Should return OC_STACK_OK
1616  */
1617 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1618 TEST_F(RICsdkServerTest_btc, OCNotifyListOfObserversCON_SRC_P)
1619 {
1620     m_result = m_pRICsdkHelper->initServer();
1621     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1622
1623     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1624             RESOURCE_URI_LIGHT);
1625     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1626
1627     OCObservationId obsIdList = 1;
1628     uint8_t numberOfIds = 0;
1629     OCRepPayload payload;
1630     payload.uri = "uri";
1631     const OCRepPayload payload2 = payload;
1632     OCQualityOfService qos = OC_HIGH_QOS;
1633
1634     m_result = OCNotifyListOfObservers(m_handle, &obsIdList, numberOfIds, &payload2, qos);
1635     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1636 }
1637 #endif
1638
1639 /**
1640  * @since 2016-07-19
1641  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1642  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1643  *       const char *resourceTypeName,
1644  *       const char *resourceInterfaceName,
1645  *       const char *uri,
1646  *       OCEntityHandler entityHandler,
1647  *       void* callbackParam,
1648  *       uint8_t resourceProperties)
1649  * @see OCStackResult OCStop()
1650  * @objective Test OCNotifyListOfObservers with negative basic way using null resource handle
1651  * @target OCNotifyListOfObservers (OCResourceHandle handle,
1652  *                            OCObservationId  *obsIdList,
1653  *                            uint8_t          numberOfIds,
1654  *                            const OCRepPayload *payload,
1655  *                            OCQualityOfService qos)
1656  * @test_data         1. OCResourceHandle null
1657  *                     2. OCObservationId List of observation IDs that need to be notified.
1658  *                     3. numberOfIds 0
1659  *                     4. OCRepPayload Object representing the notification
1660  *                     5. OCQualityOfService OC_HIGH_QOS
1661  * @pre_condition     1. Call OCInit() API
1662  *                     2. Call OCCreateResource() API
1663  * @procedure Call OCNotifyListOfObservers() API
1664  * @post_condition Call OCStop()
1665  * @expected Should return OC_STACK_ERROR
1666  */
1667 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1668 TEST_F(RICsdkServerTest_btc, OCNotifyListOfObserversResourceHandle_NV_N)
1669 {
1670     m_result = m_pRICsdkHelper->initServer();
1671     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1672
1673     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1674             RESOURCE_URI_LIGHT);
1675     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1676
1677     OCObservationId *obsIdList;
1678     uint8_t numberOfIds = 0;
1679     const OCRepPayload *payload;
1680     OCQualityOfService qos = OC_HIGH_QOS;
1681
1682     m_result = OCNotifyListOfObservers(NULL, obsIdList, numberOfIds, payload, qos);
1683     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1684 }
1685 #endif
1686
1687 /**
1688  * @since 2016-07-19
1689  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1690  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1691  *       const char *resourceTypeName,
1692  *       const char *resourceInterfaceName,
1693  *       const char *uri,
1694  *       OCEntityHandler entityHandler,
1695  *       void* callbackParam,
1696  *       uint8_t resourceProperties)
1697  * @see OCStackResult OCStop()
1698  * @objective Test OCNotifyListOfObservers with negative basic way using null observationid list
1699  * @target OCNotifyListOfObservers (OCResourceHandle handle,
1700  *                            OCObservationId  *obsIdList,
1701  *                            uint8_t          numberOfIds,
1702  *                            const OCRepPayload *payload,
1703  *                            OCQualityOfService qos)
1704  * @test_data         1. OCResourceHandle pointer to created resource
1705  *                     2. OCObservationId null
1706  *                     3. numberOfIds 0
1707  *                     4. OCRepPayload Object representing the notification
1708  *                     5. OCQualityOfService OC_HIGH_QOS
1709  * @pre_condition     1. Call OCInit() API
1710  *                     2. Call OCCreateResource() API
1711  * @procedure Call OCNotifyListOfObservers() API
1712  * @post_condition Call OCStop()
1713  * @expected Should return OC_STACK_ERROR
1714  */
1715 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1716 TEST_F(RICsdkServerTest_btc, OCNotifyListOfObserversOCObservationId_NV_N)
1717 {
1718     m_result = m_pRICsdkHelper->initServer();
1719     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1720
1721     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1722             RESOURCE_URI_LIGHT);
1723     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1724
1725     uint8_t numberOfIds = 0;
1726     const OCRepPayload *payload;
1727     OCQualityOfService qos = OC_HIGH_QOS;
1728
1729     m_result = OCNotifyListOfObservers(m_handle, NULL, numberOfIds, payload, qos);
1730     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1731 }
1732 #endif
1733
1734 /**
1735  * @since 2016-07-19
1736  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1737  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1738  *       const char *resourceTypeName,
1739  *       const char *resourceInterfaceName,
1740  *       const char *uri,
1741  *       OCEntityHandler entityHandler,
1742  *       void* callbackParam,
1743  *       uint8_t resourceProperties)
1744  * @see OCStackResult OCStop()
1745  * @objective Test OCNotifyListOfObservers with negative basic way using null value as payload
1746  * @target OCNotifyListOfObservers (OCResourceHandle handle,
1747  *                            OCObservationId  *obsIdList,
1748  *                            uint8_t          numberOfIds,
1749  *                            const OCRepPayload *payload,
1750  *                            OCQualityOfService qos)
1751  * @test_data         1. OCResourceHandle pointer to the created resource
1752  *                     2. OCObservationId List of observation IDs that need to be notified
1753  *                     3. numberOfIds 0
1754  *                     4. OCRepPayload null
1755  *                     5. OCQualityOfService OC_HIGH_QOS
1756  * @pre_condition     1. Call OCInit() API
1757  *                     2. Call OCCreateResource() API
1758  * @procedure Call OCNotifyListOfObservers() API
1759  * @post_condition Call OCStop()
1760  * @expected Should return OC_STACK_ERROR
1761  */
1762 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1763 TEST_F(RICsdkServerTest_btc, OCNotifyListOfObserversPayload_NV_N)
1764 {
1765     m_result = m_pRICsdkHelper->initServer();
1766     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1767
1768     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1769             RESOURCE_URI_LIGHT);
1770     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
1771
1772     OCObservationId *obsIdList;
1773     uint8_t numberOfIds = 0;
1774     const OCRepPayload *payload;
1775     OCQualityOfService qos = OC_HIGH_QOS;
1776
1777     m_result = OCNotifyListOfObservers(m_handle, obsIdList, numberOfIds, NULL, qos);
1778     ASSERT_EQ(OC_STACK_ERROR,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1779 }
1780 #endif
1781
1782 /**
1783  * @since 2016-07-19
1784  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1785  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1786  *       const char *resourceTypeName,
1787  *       const char *resourceInterfaceName,
1788  *       const char *uri,
1789  *       OCEntityHandler entityHandler,
1790  *       void* callbackParam,
1791  *       uint8_t resourceProperties)
1792  * @see OCStackResult OCStop()
1793  * @objective Test OCSetDefaultDeviceEntityHandler with positive basic way
1794  * @target OCStackResult OCSetDefaultDeviceEntityHandler(OCDeviceEntityHandler entityHandler, void* callbackParameter)
1795  * @test_data         1. OCDeviceEntityHandler handler to be set
1796  *                     2. callbackParameter Parameter passed back when entityHandler is called
1797  * @pre_condition     1. Call OCInit() API
1798  *                     2. Call OCCreateResource() API
1799  * @procedure Call OCSetDefaultDeviceEntityHandler() API
1800  * @post_condition Call OCStop()
1801  * @expected Should return OC_STACK_OK
1802  */
1803 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1804 TEST_F(RICsdkServerTest_btc, OCSetDefaultDeviceEntityHandler_SRC_P)
1805 {
1806     m_result = m_pRICsdkHelper->initServer();
1807     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1808
1809     void* callbackParameter;
1810     m_result = OCSetDefaultDeviceEntityHandler((OCDeviceEntityHandler)OCEntityHandlerCb, callbackParameter);
1811     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCNotifyListOfObservers failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1812 }
1813 #endif
1814
1815 /**
1816  * @since 2016-07-19
1817  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1818  * @see OCStackResult OCStop()
1819  * @objective Test OCDoResponse with negative basic way using null OCEntityHandlerResponse
1820  * @target OCStackResult OCDoResponse(OCEntityHandlerResponse *response)
1821  * @test_data OCEntityHandlerResponse null
1822  * @pre_condition Call OCInit() API
1823  * @procedure Call OCDoResponse() API
1824  * @post_condition Call OCStop()
1825  * @expected Should return OC_STACK_INVALID_PARAM
1826  */
1827 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1828 TEST_F(RICsdkServerTest_btc, OCDoResponse_NV_N)
1829 {
1830     m_result = m_pRICsdkHelper->initServer();
1831     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1832
1833     m_result = OCDoResponse(NULL);
1834     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCDoResponse failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1835 }
1836 #endif
1837
1838 /**
1839  * @since 2016-07-19
1840  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1841  * @see OCStackResult OCStop()
1842  * @objective Test OCProcess with positive basic way
1843  * @target OCStackResult OCProcess()
1844  * @test_data none
1845  * @pre_condition Call OCInit() API
1846  * @procedure Call OCProcess() API
1847  * @post_condition Call OCStop()
1848  * @expected Should return OC_STACK_OK
1849  */
1850 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1851 TEST_F(RICsdkServerTest_btc, OCProcess_SRC_P)
1852 {
1853     m_result = m_pRICsdkHelper->initServer();
1854     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1855
1856     m_result = OCProcess();
1857     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCProcess failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1858 }
1859 #endif
1860
1861 /**
1862  * @since 2016-07-19
1863  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1864  * @see OCStackResult OCStop()
1865  * @objective Test OCRegisterPersistentStorageHandler with positive basic way
1866  * @target OCStackResult OCRegisterPersistentStorageHandler(OCPersistentStorage* persistentStorageHandler)
1867  * @test_data persistentStorageHandler Pointers to open, read, write, close & unlink handlers
1868  * @pre_condition None
1869  * @procedure Call OCRegisterPersistentStorageHandler() API
1870  * @post_condition Call OCStop()
1871  * @expected Should return OC_STACK_OK
1872  */
1873 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1874 TEST_F(RICsdkServerTest_btc, OCRegisterPersistentStorageHandler_SRC_P)
1875 {
1876     OCPersistentStorage ps =
1877     { server_fopen, fread, fwrite, fclose, unlink };
1878     m_result = OCRegisterPersistentStorageHandler(&ps);
1879     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCRegisterPersistentStorageHandler failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1880 }
1881 #endif
1882
1883 /**
1884  * @since 2016-07-19
1885  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1886  * @see OCStackResult OCStop()
1887  * @objective Test OCRegisterPersistentStorageHandler with negative basic way using null persistentStorageHandler
1888  * @target OCStackResult OCRegisterPersistentStorageHandler(OCPersistentStorage* persistentStorageHandler)
1889  * @test_data persistentStorageHandler null
1890  * @pre_condition None
1891  * @procedure Call OCRegisterPersistentStorageHandler() API
1892  * @post_condition Call OCStop()
1893  * @expected Should return OC_STACK_INVALID_PARAM
1894  */
1895 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1896 TEST_F(RICsdkServerTest_btc, OCRegisterPersistentStorageHandler_USV_N)
1897 {
1898     OCPersistentStorage ps2 =
1899     { NULL, NULL, NULL, NULL, NULL };
1900     m_result = OCRegisterPersistentStorageHandler(&ps2);
1901     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCRegisterPersistentStorageHandler failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1902 }
1903 #endif
1904
1905 /**
1906  * @since 2016-07-19
1907  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1908  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1909  *       const char *resourceTypeName,
1910  *       const char *resourceInterfaceName,
1911  *       const char *uri,
1912  *       OCEntityHandler entityHandler,
1913  *       void* callbackParam,
1914  *       uint8_t resourceProperties)
1915  * @see OCStackResult OCStop()
1916  * @objective Test OCBindResourceHandler with positive basic way
1917  * @target OCStackResult OCBindResourceHandler(OCResourceHandle handle,
1918  *                                              OCEntityHandler entityHandler,
1919  *                                              void *callbackParameter)
1920  * @test_data         1. handle pointer to the created resource
1921  *                     2. entityHandler entityhandler to be called
1922  *                     3. callbackParameter Context parameter that will be passed to entityHandler
1923  * @pre_condition     1. Call OCInit() API
1924  *                     2. Call OCCreateResource() API
1925  * @procedure Call OCBindResourceHandler() API
1926  * @post_condition Call OCStop()
1927  * @expected Should return OC_STACK_OK
1928  */
1929 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1930 TEST_F(RICsdkServerTest_btc, OCBindResourceHandler_SRC_P)
1931 {
1932     m_result = m_pRICsdkHelper->initServer();
1933     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1934
1935     m_result = OCCreateResource(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1936             RESOURCE_URI_LIGHT, NULL, NULL, OC_DISCOVERABLE | OC_OBSERVABLE);
1937     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1938
1939     void* callbackParam;
1940     m_result = OCBindResourceHandler(m_handle, OCEntityHandlerCb, callbackParam);
1941     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResourceHandler failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1942 }
1943 #endif
1944
1945 /**
1946  * @since 2016-07-19
1947  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1948  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1949  *       const char *resourceTypeName,
1950  *       const char *resourceInterfaceName,
1951  *       const char *uri,
1952  *       OCEntityHandler entityHandler,
1953  *       void* callbackParam,
1954  *       uint8_t resourceProperties)
1955  * @see OCStackResult OCStop()
1956  * @objective Test OCBindResourceHandler with negative basic way using null resource handle
1957  * @target OCStackResult OCBindResourceHandler(OCResourceHandle handle,
1958  *                                              OCEntityHandler entityHandler,
1959  *                                              void *callbackParameter)
1960  * @test_data         1. handle null
1961  *                     2. entityHandler entityHandler to be called
1962  *                     3. callbackParameter Context parameter that will be passed to entityHandler
1963  * @pre_condition     1. Call OCInit() API
1964  *                     2. Call OCCreateResource() API
1965  * @procedure Call OCBindResourceHandler() API
1966  * @post_condition Call OCStop()
1967  * @expected Should return OC_STACK_INVALID_PARAM
1968  */
1969 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
1970 TEST_F(RICsdkServerTest_btc, OCBindResourceHandlerResourceHandle_NV_N)
1971 {
1972     m_result = m_pRICsdkHelper->initServer();
1973     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1974
1975     m_result = OCCreateResource(&m_handle, RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
1976             RESOURCE_URI_LIGHT, NULL, NULL, OC_DISCOVERABLE | OC_OBSERVABLE);
1977     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCCreateResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1978
1979     void* callbackParam;
1980     m_result = OCBindResourceHandler(NULL, OCEntityHandlerCb, callbackParam);
1981     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCBindResourceHandler failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
1982 }
1983 #endif
1984
1985 /**
1986  * @since 2016-07-19
1987  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
1988  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
1989  *       const char *resourceTypeName,
1990  *       const char *resourceInterfaceName,
1991  *       const char *uri,
1992  *       OCEntityHandler entityHandler,
1993  *       void* callbackParam,
1994  *       uint8_t resourceProperties)
1995  * @see OCStackResult OCStop()
1996  * @objective Test OCGetNumberOfResources with positive basic way
1997  * @target OCStackResult OCGetNumberOfResources(uint8_t *numResources)
1998  * @test_data numResources 0
1999  * @pre_condition     1. Call OCInit() API
2000  *                     2. Call OCCreateResource() API
2001  * @procedure Call OCGetNumberOfResources() API
2002  * @post_condition Call OCStop()
2003  * @expected Should return OC_STACK_OK
2004  */
2005 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2006 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResources_SRC_P)
2007 {
2008     m_result = m_pRICsdkHelper->initServer();
2009     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2010
2011     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2012             RESOURCE_URI_LIGHT);
2013     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2014
2015     uint8_t numResources = 0;
2016     m_result = OCGetNumberOfResources(&numResources);
2017     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCGetNumberOfResources failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2018 }
2019 #endif
2020
2021 /**
2022  * @since 2016-07-19
2023  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2024  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2025  *       const char *resourceTypeName,
2026  *       const char *resourceInterfaceName,
2027  *       const char *uri,
2028  *       OCEntityHandler entityHandler,
2029  *       void* callbackParam,
2030  *       uint8_t resourceProperties)
2031  * @see OCStackResult OCStop()
2032  * @objective Test OCGetNumberOfResources with negative basic way using null numResources
2033  * @target OCStackResult OCGetNumberOfResources(uint8_t *numResources)
2034  * @test_data numResources 0
2035  * @pre_condition     1. Call OCInit() API
2036  *                     2. Call OCCreateResource() API
2037  * @procedure Call OCGetNumberOfResources() API
2038  * @post_condition Call OCStop()
2039  * @expected Should return OC_STACK_INVALID_PARAM
2040  */
2041 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2042 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResources_NV_N)
2043 {
2044     m_result = m_pRICsdkHelper->initServer();
2045     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2046
2047     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2048             RESOURCE_URI_LIGHT);
2049     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2050
2051     m_result = OCGetNumberOfResources(NULL);
2052     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCGetNumberOfResources failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2053 }
2054 #endif
2055
2056 /**
2057  * @since 2016-07-19
2058  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2059  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2060  *       const char *resourceTypeName,
2061  *       const char *resourceInterfaceName,
2062  *       const char *uri,
2063  *       OCEntityHandler entityHandler,
2064  *       void* callbackParam,
2065  *       uint8_t resourceProperties)
2066  * @see OCStackResult OCStop()
2067  * @objective Test OCGetResourceHandle with positive basic way
2068  * @target OCResourceHandle OCGetResourceHandle(uint8_t index)
2069  * @test_data index 0
2070  * @pre_condition     1. Call OCInit() API
2071  *                     2. Call OCCreateResource() API
2072  * @procedure Call OCGetResourceHandle() API
2073  * @post_condition Call OCStop()
2074  * @expected Should return OC_STACK_OK
2075  */
2076 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2077 TEST_F(RICsdkServerTest_btc, OCGetResourceHandle_SRC_P)
2078 {
2079     m_result = m_pRICsdkHelper->initServer();
2080     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2081
2082     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2083             RESOURCE_URI_LIGHT);
2084     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2085
2086     uint8_t index = 0;
2087     OCResourceHandle receivedHandle = NULL;
2088     receivedHandle = OCGetResourceHandle(index);
2089     ASSERT_NE(receivedHandle,(OCResourceHandle)NULL)<< "OCGetResourceHandle failed. Received handle is null";
2090 }
2091 #endif
2092
2093 /**
2094  * @since 2016-07-19
2095  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2096  * @see OCStackResult OCStop()
2097  * @objective Test OCGetServerInstanceIDString with positive basic way
2098  * @target const char* OCGetServerInstanceIDString(void)
2099  * @test_data none
2100  * @pre_condition Call OCInit() API
2101  * @procedure Call OCGetServerInstanceIDString() API
2102  * @post_condition Call OCStop()
2103  * @expected Should return OC_STACK_OK
2104  */
2105 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2106 TEST_F(RICsdkServerTest_btc, OCGetServerInstanceIDString_SRC_P)
2107 {
2108     m_result = m_pRICsdkHelper->initServer();
2109     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2110
2111     const char *receivedIDString;
2112     receivedIDString = OCGetServerInstanceIDString();
2113     ASSERT_NE((const char *)NULL,receivedIDString)<< "OCGetServerInstanceIDString failed. Received id is null";
2114 }
2115 #endif
2116
2117 /**
2118  * @since 2016-07-19
2119  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2120  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2121  *       const char *resourceTypeName,
2122  *       const char *resourceInterfaceName,
2123  *       const char *uri,
2124  *       OCEntityHandler entityHandler,
2125  *       void* callbackParam,
2126  *       uint8_t resourceProperties)
2127  * @see OCStackResult OCStop()
2128  * @objective Test OCGetResourceUri with positive basic way
2129  * @target const char *OCGetResourceUri(OCResourceHandle handle)
2130  * @test_data handle pointer to the created resource
2131  * @pre_condition     1. Call OCInit() API
2132  *                     2. Call OCCreateResource() API
2133  * @procedure Call OCGetResourceUri() API
2134  * @post_condition Call OCStop()
2135  * @expected Should return resource uri
2136  */
2137 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2138 TEST_F(RICsdkServerTest_btc, OCGetResourceUri_SRC_P)
2139 {
2140     m_result = m_pRICsdkHelper->initServer();
2141     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2142
2143     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2144             RESOURCE_URI_LIGHT);
2145     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2146
2147     const char* receivedUri = NULL;
2148     receivedUri = OCGetResourceUri(m_handle);
2149     ASSERT_NE((const char*)NULL,receivedUri)<< "OCGetResourceUri failed. Received uri is null";
2150 }
2151 #endif
2152
2153 /**
2154  * @since 2016-07-19
2155  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2156  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2157  *       const char *resourceTypeName,
2158  *       const char *resourceInterfaceName,
2159  *       const char *uri,
2160  *       OCEntityHandler entityHandler,
2161  *       void* callbackParam,
2162  *       uint8_t resourceProperties)
2163  * @see OCStackResult OCStop()
2164  * @objective Test OCGetResourceUri with negative basic way using null resource handle
2165  * @target const char *OCGetResourceUri(OCResourceHandle handle)
2166  * @test_data handle null
2167  * @pre_condition     1. Call OCInit() API
2168  *                     2. Call OCCreateResource() API
2169  * @procedure Call OCGetResourceUri() API
2170  * @post_condition Call OCStop()
2171  * @expected Returned resource uri is null
2172  */
2173 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2174 TEST_F(RICsdkServerTest_btc, OCGetResourceUri_NV_N)
2175 {
2176     m_result = m_pRICsdkHelper->initServer();
2177     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2178
2179     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2180             RESOURCE_URI_LIGHT);
2181     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2182
2183     const char* receivedUri = NULL;
2184     receivedUri = OCGetResourceUri(NULL);
2185     ASSERT_EQ((const char *)NULL,receivedUri)<< "OCGetResourceUri failed. Received uri should be null";
2186 }
2187 #endif
2188
2189 /**
2190  * @since 2016-07-19
2191  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2192  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2193  *       const char *resourceTypeName,
2194  *       const char *resourceInterfaceName,
2195  *       const char *uri,
2196  *       OCEntityHandler entityHandler,
2197  *       void* callbackParam,
2198  *       uint8_t resourceProperties)
2199  * @see OCStackResult OCStop()
2200  * @objective Test OCGetResourceProperties with positive basic way
2201  * @target OCResourceProperty OCGetResourceProperties(OCResourceHandle handle)
2202  * @test_data handle pointer to the created resource
2203  * @pre_condition     1. Call OCInit() API
2204  *                     2. Call OCCreateResource() API
2205  * @procedure Call OCGetResourceProperties() API
2206  * @post_condition Call OCStop()
2207  * @expected Should return resource property
2208  */
2209 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2210 TEST_F(RICsdkServerTest_btc, OCGetResourceProperties_SRC_P)
2211 {
2212     m_result = m_pRICsdkHelper->initServer();
2213     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2214
2215     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2216             RESOURCE_URI_LIGHT);
2217     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2218
2219     OCResourceProperty receivedProperty = (OCResourceProperty)NULL;
2220     receivedProperty = OCGetResourceProperties(m_handle);
2221     ASSERT_NE(NULL,receivedProperty)<< "OCGetResourceProperties failed. Received property is null";
2222 }
2223 #endif
2224
2225 /**
2226  * @since 2018-03-15
2227  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2228  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2229  *       uint8_t resourceProperties)
2230  * @see OCStackResult OCStop()
2231  * @objective Test OCSetResourceProperties with positive basic way
2232  * @target OCResourceProperty OCGetResourceProperties(OCResourceHandle handle)
2233  * @test_data handle pointer to the created resource
2234  * @pre_condition      1. Call OCInit() API
2235  *                     2. Call OCCreateResource() API
2236  * @procedure Call OCSetResourceProperties() API
2237  * @post_condition Call OCStop()
2238  * @expected Should return resource property
2239  */
2240 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2241 TEST_F(RICsdkServerTest_btc, OCSetResourceProperties_SRC_FSV_P)
2242 {
2243     m_result = m_pRICsdkHelper->initServer();
2244     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2245
2246     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2247             RESOURCE_URI_LIGHT);
2248     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2249
2250     try
2251     {
2252         m_result = OCSetResourceProperties(m_handle, OC_DISCOVERABLE|OC_OBSERVABLE);
2253         ASSERT_EQ(OC_STACK_OK,m_result)<< "OCSetResourceProperties failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2254     }
2255     catch (exception &e)
2256     {
2257         SET_FAILURE("Exception occured. Exception is " + std::string(e.what()));
2258     }
2259 }
2260 #endif
2261
2262 /**
2263  * @since 2018-03-15
2264  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2265  * @see OCStackResult OCClearResourceProperties(OCResourceHandle *handle,
2266  *       uint8_t resourceProperties)
2267  * @see OCStackResult OCStop()
2268  * @objective Test OCClearResourceProperties with positive basic way
2269  * @target OCResourceProperty OCGetResourceProperties(OCResourceHandle handle)
2270  * @test_data handle pointer to the created resource
2271  * @pre_condition      1. Call OCInit() API
2272  *                     2. Call OCCreateResource() API
2273  * @procedure Call OCClearResourceProperties() API
2274  * @post_condition Call OCStop()
2275  * @expected Should return resource property
2276  */
2277 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2278 TEST_F(RICsdkServerTest_btc, OCClearResourceProperties_SRC_FSV_P)
2279 {
2280     m_result = m_pRICsdkHelper->initServer();
2281     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2282
2283     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2284             RESOURCE_URI_LIGHT);
2285     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2286
2287     try
2288     {
2289         m_result = OCClearResourceProperties(m_handle, OC_DISCOVERABLE|OC_OBSERVABLE);
2290         ASSERT_EQ(OC_STACK_OK,m_result)<< "OCClearResourceProperties failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2291     }
2292     catch (exception &e)
2293     {
2294         SET_FAILURE("Exception occured. Exception is " + std::string(e.what()));
2295     }
2296 }
2297 #endif
2298
2299 /**
2300  * @since 2016-07-19
2301  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2302  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2303  *       const char *resourceTypeName,
2304  *       const char *resourceInterfaceName,
2305  *       const char *uri,
2306  *       OCEntityHandler entityHandler,
2307  *       void* callbackParam,
2308  *       uint8_t resourceProperties)
2309  * @see OCStackResult OCStop()
2310  * @objective Test OCGetNumberOfResourceTypes with positive basic way
2311  * @target OCStackResult OCGetNumberOfResourceTypes(OCResourceHandle handle, uint8_t *numResourceTypes)
2312  * @test_data         1. handle pointer to the created resource
2313  *                     2. numResourceTypes 0
2314  * @pre_condition     1. Call OCInit() API
2315  *                     2. Call OCCreateResource() API
2316  * @procedure Call OCGetNumberOfResourceTypes() API
2317  * @post_condition Call OCStop()
2318  * @expected Should return OC_STACK_OK
2319  */
2320 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2321 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceTypes_SRC_P)
2322 {
2323     m_result = m_pRICsdkHelper->initServer();
2324     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2325
2326     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2327             RESOURCE_URI_LIGHT);
2328     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2329
2330     uint8_t numResourceTypes = 0;
2331     m_result = OCGetNumberOfResourceTypes(m_handle, &numResourceTypes);
2332     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCGetNumberOfResourceTypes failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2333 }
2334 #endif
2335
2336 /**
2337  * @since 2016-07-19
2338  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2339  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2340  *       const char *resourceTypeName,
2341  *       const char *resourceInterfaceName,
2342  *       const char *uri,
2343  *       OCEntityHandler entityHandler,
2344  *       void* callbackParam,
2345  *       uint8_t resourceProperties)
2346  * @see OCStackResult OCStop()
2347  * @objective Test OCGetNumberOfResourceTypes with negative basic way using null value as hanle
2348  * @target OCStackResult OCGetNumberOfResourceTypes(OCResourceHandle handle, uint8_t *numResourceTypes)
2349  * @test_data         1. handle null
2350  *                     2. numResourceTypes 0
2351  * @pre_condition     1. Call OCInit() API
2352  *                     2. Call OCCreateResource() API
2353  * @procedure Call OCGetNumberOfResourceTypes() API
2354  * @post_condition Call OCStop()
2355  * @expected Should return OC_STACK_INVALID_PARAM
2356  */
2357 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2358 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceTypesResourceHandle_NV_N)
2359 {
2360     m_result = m_pRICsdkHelper->initServer();
2361     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2362
2363     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2364             RESOURCE_URI_LIGHT);
2365     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2366
2367     uint8_t numResourceTypes = 0;
2368     m_result = OCGetNumberOfResourceTypes(NULL, &numResourceTypes);
2369     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCGetNumberOfResourceTypes failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2370 }
2371 #endif
2372
2373 /**
2374  * @since 2016-07-19
2375  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2376  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2377  *       const char *resourceTypeName,
2378  *       const char *resourceInterfaceName,
2379  *       const char *uri,
2380  *       OCEntityHandler entityHandler,
2381  *       void* callbackParam,
2382  *       uint8_t resourceProperties)
2383  * @see OCStackResult OCStop()
2384  * @objective Test OCGetNumberOfResourceTypes with negative basic way using null value in place of number of resource types
2385  * @target OCStackResult OCGetNumberOfResourceTypes(OCResourceHandle handle, uint8_t *numResourceTypes)
2386  * @test_data         1. handle pointer to the created resource
2387  *                     2. numResourceTypes 0
2388  * @pre_condition     1. Call OCInit() API
2389  *                     2. Call OCCreateResource() API
2390  * @procedure Call OCGetNumberOfResourceTypes() API
2391  * @post_condition Call OCStop()
2392  * @expected Should return OC_STACK_INVALID_PARAM
2393  */
2394 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2395 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceTypesResourceTypes_NV_N)
2396 {
2397     m_result = m_pRICsdkHelper->initServer();
2398     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2399
2400     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2401             RESOURCE_URI_LIGHT);
2402     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2403
2404     m_result = OCGetNumberOfResourceTypes(m_handle, NULL);
2405     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCGetNumberOfResourceTypes failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2406 }
2407 #endif
2408
2409 /**
2410  * @since 2016-07-19
2411  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2412  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2413  *       const char *resourceTypeName,
2414  *       const char *resourceInterfaceName,
2415  *       const char *uri,
2416  *       OCEntityHandler entityHandler,
2417  *       void* callbackParam,
2418  *       uint8_t resourceProperties)
2419  * @see OCStackResult OCStop()
2420  * @objective Test OCGetResourceTypeName with positive basic way
2421  * @target const char *OCGetResourceTypeName(OCResourceHandle handle, uint8_t index)
2422  * @test_data         1. handle pointer to the created resource
2423  *                     2. index 0
2424  * @pre_condition     1. Call OCInit() API
2425  *                     2. Call OCCreateResource() API
2426  * @procedure Call OCGetResourceTypeName() API
2427  * @post_condition Call OCStop()
2428  * @expected Should return resourceType Name
2429  */
2430 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2431 TEST_F(RICsdkServerTest_btc, OCGetResourceTypeName_SRC_P)
2432 {
2433     m_result = m_pRICsdkHelper->initServer();
2434     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2435
2436     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2437             RESOURCE_URI_LIGHT);
2438     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2439
2440     uint8_t index = 0;
2441     const char* receivedResourceType = NULL;
2442     receivedResourceType = OCGetResourceTypeName(m_handle, index);
2443     ASSERT_NE((const char*)NULL,receivedResourceType)<< "OCGetResourceTypeName failed. Received resource type is null";
2444 }
2445 #endif
2446
2447 /**
2448  * @since 2016-07-19
2449  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2450  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2451  *       const char *resourceTypeName,
2452  *       const char *resourceInterfaceName,
2453  *       const char *uri,
2454  *       OCEntityHandler entityHandler,
2455  *       void* callbackParam,
2456  *       uint8_t resourceProperties)
2457  * @see OCStackResult OCStop()
2458  * @objective Test OCGetResourceTypeName with negative basic way using null value as resource handle
2459  * @target const char *OCGetResourceTypeName(OCResourceHandle handle, uint8_t index)
2460  * @test_data         1. handle null
2461  *                     2. index 0
2462  * @pre_condition     1. Call OCInit() API
2463  *                     2. Call OCCreateResource() API
2464  * @procedure Call OCGetResourceTypeName() API
2465  * @post_condition Call OCStop()
2466  * @expected Returned resourceType Name is null
2467  */
2468 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2469 TEST_F(RICsdkServerTest_btc, OCGetResourceTypeNameResourceHandle_NV_N)
2470 {
2471     m_result = m_pRICsdkHelper->initServer();
2472     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2473
2474     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2475             RESOURCE_URI_LIGHT);
2476     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2477
2478     uint8_t index = 0;
2479     const char* receivedResourceType = NULL;
2480     receivedResourceType = OCGetResourceTypeName(NULL, index);
2481     ASSERT_EQ((const char*)NULL,receivedResourceType)<< "OCGetResourceTypeName failed. Received resource type should be null";
2482 }
2483 #endif
2484
2485 /**
2486  * @since 2016-07-19
2487  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2488  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2489  *       const char *resourceTypeName,
2490  *       const char *resourceInterfaceName,
2491  *       const char *uri,
2492  *       OCEntityHandler entityHandler,
2493  *       void* callbackParam,
2494  *       uint8_t resourceProperties)
2495  * @see OCStackResult OCStop()
2496  * @objective Test OCGetNumberOfResourceInterfaces with positive basic way
2497  * @target  OCStackResult OCGetNumberOfResourceInterfaces(OCResourceHandle handle,
2498  *        uint8_t *numResourceInterfaces)
2499  * @test_data         1. handle pointer to the created resource
2500  *                     2. numResourceInterfaces 0
2501  * @pre_condition     1. Call OCInit() API
2502  *                     2. Call OCCreateResource() API
2503  * @procedure Call OCGetNumberOfResourceInterfaces() API
2504  * @post_condition Call OCStop()
2505  * @expected Should return OC_STACK_OK
2506  */
2507 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2508 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceInterfaces_SRC_P)
2509 {
2510     m_result = m_pRICsdkHelper->initServer();
2511     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2512
2513     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2514             RESOURCE_URI_LIGHT);
2515     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2516
2517     uint8_t numResourceInterfaces = 0;
2518     m_result = OCGetNumberOfResourceInterfaces(m_handle, &numResourceInterfaces);
2519     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCGetNumberOfResourceInterfaces failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2520 }
2521 #endif
2522
2523 /**
2524  * @since 2016-07-19
2525  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2526  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2527  *       const char *resourceTypeName,
2528  *       const char *resourceInterfaceName,
2529  *       const char *uri,
2530  *       OCEntityHandler entityHandler,
2531  *       void* callbackParam,
2532  *       uint8_t resourceProperties)
2533  * @see OCStackResult OCStop()
2534  * @objective Test OCGetNumberOfResourceInterfaces with negative basic way using null value as resource handle
2535  * @target  OCStackResult OCGetNumberOfResourceInterfaces(OCResourceHandle handle,
2536  *        uint8_t *numResourceInterfaces)
2537  * @test_data         1. handle null
2538  *                     2. numResourceInterfaces 0
2539  * @pre_condition     1. Call OCInit() API
2540  *                     2. Call OCCreateResource() API
2541  * @procedure Call OCGetNumberOfResourceInterfaces() API
2542  * @post_condition Call OCStop()
2543  * @expected Should return OC_STACK_INVALID_PARAM
2544  */
2545 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2546 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceInterfacesResourceHandle_NV_N)
2547 {
2548     m_result = m_pRICsdkHelper->initServer();
2549     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2550
2551     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2552             RESOURCE_URI_LIGHT);
2553     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2554
2555     uint8_t numResourceInterfaces = 0;
2556     m_result = OCGetNumberOfResourceInterfaces(NULL, &numResourceInterfaces);
2557     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCGetNumberOfResourceInterfaces failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2558 }
2559 #endif
2560
2561 /**
2562  * @since 2016-07-19
2563  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2564  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2565  *       const char *resourceTypeName,
2566  *       const char *resourceInterfaceName,
2567  *       const char *uri,
2568  *       OCEntityHandler entityHandler,
2569  *       void* callbackParam,
2570  *       uint8_t resourceProperties)
2571  * @see OCStackResult OCStop()
2572  * @objective Test OCGetNumberOfResourceInterfaces with negative basic way using null value as numResourceInterfaces
2573  * @target  OCStackResult OCGetNumberOfResourceInterfaces(OCResourceHandle handle,
2574  *        uint8_t *numResourceInterfaces)
2575  * @test_data         1. handle pointer to the created resource
2576  *                     2. numResourceInterfaces null
2577  * @pre_condition     1. Call OCInit() API
2578  *                     2. Call OCCreateResource() API
2579  * @procedure Call OCGetNumberOfResourceInterfaces() API
2580  * @post_condition Call OCStop()
2581  * @expected Should return OC_STACK_INVALID_PARAM
2582  */
2583 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2584 TEST_F(RICsdkServerTest_btc, OCGetNumberOfResourceInterfacesNumResourceInterfaces_NV_N)
2585 {
2586     m_result = m_pRICsdkHelper->initServer();
2587     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2588
2589     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2590             RESOURCE_URI_LIGHT);
2591     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2592
2593     m_result = OCGetNumberOfResourceInterfaces(m_handle, NULL);
2594     ASSERT_EQ(OC_STACK_INVALID_PARAM,m_result)<< "OCGetNumberOfResourceInterfaces failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2595 }
2596 #endif
2597
2598 /**
2599  * @since 2016-07-19
2600  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2601  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2602  *       const char *resourceTypeName,
2603  *       const char *resourceInterfaceName,
2604  *       const char *uri,
2605  *       OCEntityHandler entityHandler,
2606  *       void* callbackParam,
2607  *       uint8_t resourceProperties)
2608  * @see OCStackResult OCStop()
2609  * @objective Test OCGetResourceInterfaceName with positive basic way
2610  * @target const char *OCGetResourceInterfaceName(OCResourceHandle handle, uint8_t index)
2611  * @test_data         1. handle pointer to the created resource
2612  *                     2. index 0
2613  * @pre_condition     1. Call OCInit() API
2614  *                     2. Call OCCreateResource() API
2615  * @procedure Call OCGetResourceInterfaceName() API
2616  * @post_condition Call OCStop()
2617  * @expected Should return resource interface name
2618  */
2619 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2620 TEST_F(RICsdkServerTest_btc, OCGetResourceInterfaceName_SRC_P)
2621 {
2622     m_result = m_pRICsdkHelper->initServer();
2623     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2624
2625     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2626             RESOURCE_URI_LIGHT);
2627     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2628
2629     uint8_t index = 0;
2630     const char* receivedResourceInterfaceName = NULL;
2631     receivedResourceInterfaceName = OCGetResourceInterfaceName(m_handle, index);
2632     ASSERT_NE((const char*)NULL,receivedResourceInterfaceName)<< "OCGetResourceInterfaceName failed. Received resource interface is null";
2633 }
2634 #endif
2635
2636 /**
2637  * @since 2016-07-19
2638  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2639  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2640  *       const char *resourceTypeName,
2641  *       const char *resourceInterfaceName,
2642  *       const char *uri,
2643  *       OCEntityHandler entityHandler,
2644  *       void* callbackParam,
2645  *       uint8_t resourceProperties)
2646  * @see OCStackResult OCStop()
2647  * @objective Test OCGetResourceInterfaceName with negative basic way using null resource handle
2648  * @target const char *OCGetResourceInterfaceName(OCResourceHandle handle, uint8_t index)
2649  * @test_data         1. handle null
2650  *                     2. index 0
2651  * @pre_condition     1. Call OCInit() API
2652  *                     2. Call OCCreateResource() API
2653  * @procedure Call OCGetResourceInterfaceName() API
2654  * @post_condition Call OCStop()
2655  * @expected Returned resource interface name is null
2656  */
2657 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2658 TEST_F(RICsdkServerTest_btc, OCGetResourceInterfaceNameResourceHandle_NV_N)
2659 {
2660     m_result = m_pRICsdkHelper->initServer();
2661     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2662
2663     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2664             RESOURCE_URI_LIGHT);
2665     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2666
2667     uint8_t index = 0;
2668     const char* receivedResourceInterfaceName = NULL;
2669     receivedResourceInterfaceName = OCGetResourceInterfaceName(NULL, index);
2670     ASSERT_EQ((const char*)NULL,receivedResourceInterfaceName)<< "OCGetResourceInterfaceName failed. Received resource interface should be null";
2671 }
2672 #endif
2673
2674 /**
2675  * @since 2016-07-19
2676  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2677  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2678  *       const char *resourceTypeName,
2679  *       const char *resourceInterfaceName,
2680  *       const char *uri,
2681  *       OCEntityHandler entityHandler,
2682  *       void* callbackParam,
2683  *       uint8_t resourceProperties)
2684  * @see OCStackResult OCBindResource(OCResourceHandle collectionHandle, OCResourceHandle resourceHandle)
2685  * @see OCStackResult OCStop()
2686  * @objective Test OCGetResourceHandleFromCollection with positive basic way
2687  * @target OCResourceHandle OCGetResourceHandleFromCollection(OCResourceHandle collectionHandle,
2688  *        uint8_t index)
2689  * @test_data         1. collectionHandle pointer to the collection resource
2690  *                     2. index 0
2691  * @pre_condition     1. Call OCInit() API
2692  *                     2. Call OCCreateResource() API
2693  *                     3. Call OCBindResource() API
2694  * @procedure Call OCGetResourceHandleFromCollection() API
2695  * @post_condition Call OCStop()
2696  * @expected Should return resource handle
2697  */
2698 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2699 TEST_F(RICsdkServerTest_btc, OCGetResourceHandleFromCollection_SRC_P)
2700 {
2701     m_result = m_pRICsdkHelper->initServer();
2702     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2703
2704     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2705             RESOURCE_URI_LIGHT);
2706     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
2707
2708     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
2709             RESOURCE_URI_FAN);
2710     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
2711
2712     m_result = OCBindResource(m_fanHandle, m_lightHandle);
2713     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2714
2715     OCResourceHandle receivedHandle = NULL;
2716     uint8_t index = 0;
2717     receivedHandle = OCGetResourceHandleFromCollection(m_fanHandle, index);
2718     ASSERT_NE((OCResourceHandle)NULL,receivedHandle)<< "OCGetResourceHandleFromCollection failed. Received handle is null";
2719 }
2720 #endif
2721
2722 /**
2723  * @since 2016-07-19
2724  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2725  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2726  *       const char *resourceTypeName,
2727  *       const char *resourceInterfaceName,
2728  *       const char *uri,
2729  *       OCEntityHandler entityHandler,
2730  *       void* callbackParam,
2731  *       uint8_t resourceProperties)
2732  * @see OCStackResult OCStop()
2733  * @objective Test OCGetResourceHandleFromCollection with negative basic way using null value as resource handle
2734  * @target OCResourceHandle OCGetResourceHandleFromCollection(OCResourceHandle collectionHandle,
2735  *        uint8_t index)
2736  * @test_data         1. collectionHandle null
2737  *                     2. index 0
2738  * @pre_condition     1. Call OCInit() API
2739  *                     2. Call OCCreateResource() API
2740  * @procedure Call OCGetResourceHandleFromCollection() API
2741  * @post_condition Call OCStop()
2742  * @expected Returned resource handle is null
2743  */
2744 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2745 TEST_F(RICsdkServerTest_btc, OCGetResourceHandleFromCollectionResourceHandle_NV_N)
2746 {
2747     m_result = m_pRICsdkHelper->initServer();
2748     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2749
2750     m_lightHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2751             RESOURCE_URI_LIGHT);
2752     ASSERT_NE(m_lightHandle,(OCResourceHandle)NULL)<< "Light Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
2753
2754     m_fanHandle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_FAN, RESOURCE_INTERFACE_DEFAULT,
2755             RESOURCE_URI_FAN);
2756     ASSERT_NE(m_fanHandle,(OCResourceHandle)NULL)<< "Fan Resource was not created. " + m_pRICsdkHelper->getFailureMessage();
2757
2758     m_result = OCBindResource(m_fanHandle, m_lightHandle);
2759     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCBindResource failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2760
2761     OCResourceHandle receivedHandle = NULL;
2762     uint8_t index = 0;
2763     receivedHandle = OCGetResourceHandleFromCollection(NULL, index);
2764     ASSERT_EQ((OCResourceHandle)NULL,receivedHandle)<< "OCGetResourceHandleFromCollection failed. Received handle should be null";
2765 }
2766 #endif
2767
2768 /**
2769  * @since 2016-07-19
2770  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2771  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2772  *       const char *resourceTypeName,
2773  *       const char *resourceInterfaceName,
2774  *       const char *uri,
2775  *       OCEntityHandler entityHandler,
2776  *       void* callbackParam,
2777  *       uint8_t resourceProperties)
2778  * @see OCStackResult OCStop()
2779  * @objective Test OCGetResourceHandler with positive basic way
2780  * @target OCEntityHandler OCGetResourceHandler(OCResourceHandle handle)
2781  * @test_data handle pointer to the created resource
2782  * @pre_condition     1. Call OCInit() API
2783  *                     2. Call OCCreateResource() API
2784  * @procedure Call OCGetResourceHandler() API
2785  * @post_condition Call OCStop()
2786  * @expected Should return entity handler
2787  */
2788 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2789 TEST_F(RICsdkServerTest_btc, OCGetResourceHandler_SRC_P)
2790 {
2791     m_result = m_pRICsdkHelper->initServer();
2792     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2793
2794     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2795             RESOURCE_URI_LIGHT);
2796     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2797
2798     OCEntityHandler entityHandler = NULL;
2799     entityHandler = OCGetResourceHandler(m_handle);
2800     ASSERT_NE((OCEntityHandler)NULL,entityHandler)<< "OCGetResourceHandler failed. Received entity handler is null";
2801 }
2802 #endif
2803
2804 /**
2805  * @since 2016-07-19
2806  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2807  * @see OCStackResult OCCreateResource(OCResourceHandle *handle,
2808  *       const char *resourceTypeName,
2809  *       const char *resourceInterfaceName,
2810  *       const char *uri,
2811  *       OCEntityHandler entityHandler,
2812  *       void* callbackParam,
2813  *       uint8_t resourceProperties)
2814  * @see OCStackResult OCStop()
2815  * @objective Test OCGetResourceHandler with negative basic way using null value as resource handle
2816  * @target OCEntityHandler OCGetResourceHandler(OCResourceHandle handle)
2817  * @test_data handle null
2818  * @pre_condition     1. Call OCInit() API
2819  *                     2. Call OCCreateResource() API
2820  * @procedure Call OCGetResourceHandler() API
2821  * @post_condition Call OCStop()
2822  * @expected Returned entity handler should be null
2823  */
2824 #if defined(__LINUX__) || defined(__TIZEN__) || defined(__WINDOWS__)
2825 TEST_F(RICsdkServerTest_btc, OCGetResourceHandlerResourceHandle_NV_N)
2826 {
2827     m_result = m_pRICsdkHelper->initServer();
2828     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2829
2830     m_handle = m_pRICsdkHelper->createResource(RESOURCE_TYPE_LIGHT, RESOURCE_INTERFACE_DEFAULT,
2831             RESOURCE_URI_LIGHT);
2832     ASSERT_NE(m_handle,(OCResourceHandle)NULL)<< m_pRICsdkHelper->getFailureMessage();
2833
2834     OCEntityHandler entityHandler = NULL;
2835     entityHandler = OCGetResourceHandler(NULL);
2836     ASSERT_EQ((OCEntityHandler)NULL,entityHandler)<< "OCGetResourceHandler failed. Received entity handler should be null";
2837 }
2838 #endif
2839
2840 /**
2841  * @since 2016-07-19
2842  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2843  * @see OCStackResult OCStop()
2844  * @objective Test OCStartMulticastServer with positive basic way
2845  * @target OCStackResult OCStartMulticastServer()
2846  * @test_data none
2847  * @pre_condition Call OCInit() API
2848  * @procedure Call OCStartMulticastServer() API
2849  * @post_condition Call OCStop()
2850  * @expected Should return OC_STACK_OK
2851  */
2852 #if defined(__LINUX__) || defined(__TIZEN__)
2853 TEST_F(RICsdkServerTest_btc, OCStartMulticastServer_SRC_P)
2854 {
2855     m_result = m_pRICsdkHelper->initServer();
2856     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2857
2858     m_result = OCStartMulticastServer();
2859     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStartMulticastServer failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2860 }
2861 #endif
2862
2863 /**
2864  * @since 2016-07-19
2865  * @see OCStackResult OCInit(const char *ipAddr, uint16_t port, OCMode mode)
2866  * @see OCStackResult OCStop()
2867  * @objective Test OCStopMulticastServer with positive basic way
2868  * @target OCStackResult OCStopMulticastServer()
2869  * @test_data none
2870  * @pre_condition Call OCInit() API
2871  * @procedure Call OCStopMulticastServer() API
2872  * @post_condition Call OCStop()
2873  * @expected Should return OC_STACK_OK
2874  */
2875 #if defined(__LINUX__) || defined(__TIZEN__)
2876 TEST_F(RICsdkServerTest_btc, OCStopMulticastServer_SRC_P)
2877 {
2878     m_result = m_pRICsdkHelper->initServer();
2879     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCInit failed for server. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2880
2881     m_result = OCStopMulticastServer();
2882     ASSERT_EQ(OC_STACK_OK,m_result)<< "OCStopMulticastServer failed. Actual result : " << CommonUtil::s_OCStackResultString.at(m_result);
2883 }
2884 #endif