Merge branch 'master' into resource-encapsulation
[platform/upstream/iotivity.git] / resource / unittests / OCResourceTest.cpp
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Mobile Communications GmbH 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 <OCPlatform.h>
23 #include <OCApi.h>
24 #include <gtest/gtest.h>
25 #include <string>
26 #include <map>
27
28 namespace OCResourceTest
29 {
30     using namespace OC;
31     // Callbacks
32     void onObserve(const HeaderOptions, const OCRepresentation&, const int&, const int&)
33     {
34     }
35
36     void onGetPut(const HeaderOptions&, const OCRepresentation& , const int eCode)
37     {
38         EXPECT_EQ(eCode, OC_STACK_OK);
39     }
40
41     void foundResource(std::shared_ptr<OCResource> )
42     {
43     }
44
45     void deleteResponse(const HeaderOptions&, const int)
46     {
47     }
48
49     //Helper method
50     OCResource::Ptr ConstructResourceObject(std::string host, std::string uri)
51     {
52         OCConnectivityType connectivityType = CT_DEFAULT;
53         std::vector<std::string> types = {"intel.rpost"};
54         std::vector<std::string> ifaces = {DEFAULT_INTERFACE};
55
56         auto ret = OCPlatform::constructResourceObject(host, uri,
57                 connectivityType, false, types, ifaces);
58
59         if(!ret)
60         {
61             ADD_FAILURE() << "ConstructResourceObject result was null";
62             throw std::runtime_error("ConstructResourceObject result was null");
63         }
64
65         return ret;
66     }
67
68      //Get Test
69     TEST(ConstructResourceTest, ConstructResourceObject)
70     {
71         EXPECT_ANY_THROW(ConstructResourceObject(std::string(""), std::string("")));
72     }
73
74     TEST(ConstructResourceTest, ConstructResourceObjectWithoutCoapScheme)
75     {
76         EXPECT_ANY_THROW(ConstructResourceObject("//192.168.1.2:5000", "/resource"));
77     }
78
79     TEST(ConstructResourceTest, ConstructResourceObjectWithoutPortNumber)
80     {
81         EXPECT_ANY_THROW(ConstructResourceObject("coap://192.168.1.2", "/resource"));
82     }
83
84     TEST(ConstructResourceTest, ConstructResourceObjectInvalidHost)
85     {
86         EXPECT_ANY_THROW(ConstructResourceObject("192.168.1.2:5000", "/resource"));
87     }
88
89     TEST(ConstructResourceTest, ConstructResourceObjectInvalidHost2)
90     {
91         EXPECT_ANY_THROW(ConstructResourceObject("coap://:5000", "/resource"));
92     }
93
94     TEST(ConstructResourceTest, ConstructResourceObjectInvalidUri)
95     {
96         EXPECT_ANY_THROW(ConstructResourceObject("coap://192.168.1.2:5000", "/"));
97     }
98
99     TEST(ConstructResourceTest, ConstructResourceObjectInvalidUri2)
100     {
101         EXPECT_ANY_THROW(ConstructResourceObject("coap://192.168.1.2:5000", "resource"));
102     }
103
104     TEST(ResourceGetTest, DISABLED_ResourceGetForValidUri)
105     {
106         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
107         EXPECT_TRUE(resource != NULL);
108         EXPECT_EQ(OC_STACK_OK, resource->get(OC::QueryParamsMap(), &onGetPut));
109
110     }
111
112     TEST(ResourceGetTest, DISABLED_ResourceGetForBadUri)
113     {
114         OCResource::Ptr resource = ConstructResourceObject("", "coap://192.168.1.2:5000");
115         EXPECT_TRUE(resource != NULL);
116         EXPECT_THROW(resource->get(OC::QueryParamsMap(), &onGetPut), OC::OCException);
117     }
118
119     TEST(ResourceGetTest, DISABLED_ResourceGetWithHighQos)
120     {
121         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
122         EXPECT_TRUE(resource != NULL);
123         EXPECT_EQ(OC_STACK_OK,
124                 resource->get(OC::QueryParamsMap(), &onGetPut, QualityOfService::HighQos));
125     }
126
127     TEST(ResourceGetTest, DISABLED_ResourceGetWithLowQos)
128     {
129         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
130         EXPECT_TRUE(resource != NULL);
131         EXPECT_EQ(OC_STACK_OK,
132                 resource->get(OC::QueryParamsMap(), &onGetPut, QualityOfService::LowQos));
133     }
134
135     TEST(ResourceGetTest, DISABLED_ResourceGetWithMidQos)
136     {
137         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
138         EXPECT_TRUE(resource != NULL);
139         EXPECT_EQ(OC_STACK_OK,
140                 resource->get(OC::QueryParamsMap(), &onGetPut, QualityOfService::MidQos));
141     }
142
143     TEST(ResourceGetTest, DISABLED_ResourceGetWithNaQos)
144     {
145         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
146         EXPECT_TRUE(resource != NULL);
147         EXPECT_EQ(OC_STACK_OK,
148                 resource->get(OC::QueryParamsMap(), &onGetPut, QualityOfService::NaQos));
149     }
150
151     TEST(ResourceGetTest, DISABLED_ResourceGetWithRTIFNaQos)
152     {
153         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
154         EXPECT_TRUE(resource != NULL);
155         EXPECT_EQ(OC_STACK_OK,
156                 resource->get("", DEFAULT_INTERFACE, QueryParamsMap(), &onGetPut,
157                         QualityOfService::NaQos));
158     }
159
160     TEST(ResourceGetTest, DISABLED_ResourceGetWithNullResourceType)
161     {
162         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
163         EXPECT_TRUE(resource != NULL);
164         EXPECT_ANY_THROW(
165                 resource->get(nullptr, DEFAULT_INTERFACE, QueryParamsMap(), &onGetPut,
166                         QualityOfService::NaQos));
167     }
168
169
170     TEST(ResourceGetTest, DISABLED_ResourceGetWithNullResourceInterface)
171     {
172         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
173         EXPECT_TRUE(resource != NULL);
174         EXPECT_ANY_THROW(
175                 resource->get("", nullptr, QueryParamsMap(), &onGetPut, QualityOfService::NaQos));
176     }
177
178     TEST(ResourceGetTest, DISABLED_ResourceGetWithTypeAndInterface)
179     {
180         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
181         EXPECT_TRUE(resource != NULL);
182         EXPECT_EQ(OC_STACK_OK, resource->get("", DEFAULT_INTERFACE, QueryParamsMap(), &onGetPut));
183     }
184
185     //Post Test
186     TEST(ResourcePostTest, DISABLED_ResourcePostValidConfiguration)
187     {
188         OCRepresentation rep;
189         QueryParamsMap query = {};
190         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
191         EXPECT_TRUE(resource != NULL);
192         EXPECT_EQ(OC_STACK_OK, resource->post(rep, query, &onGetPut));
193     }
194
195     TEST(ResourcePostTest, DISABLED_ResourcePostWithNaQos)
196     {
197         OCRepresentation rep;
198         QueryParamsMap query = {};
199         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
200         EXPECT_TRUE(resource != NULL);
201         EXPECT_EQ(OC_STACK_OK, resource->post(rep, query, &onGetPut, QualityOfService::NaQos));
202     }
203
204     TEST(ResourcePostTest, DISABLED_ResourcePostWithMidQos)
205     {
206         OCRepresentation rep;
207         QueryParamsMap query = {};
208         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
209         EXPECT_TRUE(resource != NULL);
210         EXPECT_EQ(OC_STACK_OK, resource->post(rep, query, &onGetPut, QualityOfService::MidQos));
211     }
212
213     TEST(ResourcePostTest, DISABLED_ResourcePostWithLowQos)
214     {
215         OCRepresentation rep;
216         QueryParamsMap query = {};
217         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
218         EXPECT_TRUE(resource != NULL);
219         EXPECT_EQ(OC_STACK_OK, resource->post(rep, query, &onGetPut, QualityOfService::LowQos));
220     }
221
222     TEST(ResourcePostTest, DISABLED_ResourcePostWithHighQos)
223     {
224         OCRepresentation rep;
225         QueryParamsMap query = {};
226         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
227         EXPECT_TRUE(resource != NULL);
228         EXPECT_EQ(OC_STACK_OK, resource->post(rep, query, &onGetPut, QualityOfService::HighQos));
229     }
230
231     //Put Test
232     TEST(ResourcePutTest, DISABLED_ResourcePutForValid)
233     {
234         OCRepresentation rep;
235         QueryParamsMap query = {};
236         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
237         EXPECT_TRUE(resource != NULL);
238         EXPECT_EQ(OC_STACK_OK, resource->put(rep, query, &onGetPut));
239     }
240
241     TEST(ResourcePutTest, DISABLED_ResourcePutWithNaQos)
242     {
243         OCRepresentation rep;
244         QueryParamsMap query = {};
245         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
246         EXPECT_TRUE(resource != NULL);
247         EXPECT_EQ(OC_STACK_OK, resource->put(rep, query, &onGetPut, QualityOfService::NaQos));
248     }
249
250     TEST(ResourcePutTest, DISABLED_ResourcePutWithLowQos)
251     {
252         OCRepresentation rep;
253         QueryParamsMap query = {};
254         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
255         EXPECT_TRUE(resource != NULL);
256         EXPECT_EQ(OC_STACK_OK, resource->put(rep, query, &onGetPut, QualityOfService::LowQos));
257     }
258
259     TEST(ResourcePutTest, DISABLED_ResourcePutWithMidQos)
260     {
261         OCRepresentation rep;
262         QueryParamsMap query = {};
263         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
264         EXPECT_TRUE(resource != NULL);
265         EXPECT_EQ(OC_STACK_OK, resource->put(rep, query, &onGetPut, QualityOfService::MidQos));
266     }
267
268     TEST(ResourcePutTest, DISABLED_ResourcePutWithHighQos)
269     {
270         OCRepresentation rep;
271         QueryParamsMap query = {};
272         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
273         EXPECT_TRUE(resource != NULL);
274         EXPECT_EQ(OC_STACK_OK, resource->put(rep, query, &onGetPut, QualityOfService::HighQos));
275     }
276
277     TEST(ResourcePutTest, DISABLED_ResourcePutWithTypeAndInterface)
278     {
279         OCRepresentation rep;
280         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
281         EXPECT_TRUE(resource != NULL);
282         EXPECT_EQ(OC_STACK_OK,
283                 resource->put("", DEFAULT_INTERFACE, rep, QueryParamsMap(), &onGetPut));
284     }
285
286     TEST(ResourcePutTest, DISABLED_ResourcePutWithNullType)
287     {
288         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
289         EXPECT_TRUE(resource != NULL);
290         OCRepresentation rep;
291         EXPECT_ANY_THROW(
292                 resource->put(nullptr, DEFAULT_INTERFACE, rep, QueryParamsMap(), &onGetPut));
293         HeaderOptions headerOptions;
294         onGetPut(headerOptions, rep, OC_STACK_OK);
295     }
296
297     TEST(ResourcePutTest, DISABLED_ResourcePutWithNullInterface)
298     {
299         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
300         EXPECT_TRUE(resource != NULL);
301         OCRepresentation rep;
302         EXPECT_ANY_THROW(resource->put("", nullptr, rep, QueryParamsMap(), &onGetPut));
303     }
304
305     // Observer Test
306     TEST(ResourceObserveTest, DISABLED_ResourceObserveValidUri)
307     {
308         OCResource::Ptr resource =
309                 ConstructResourceObject("coap://192.168.1.2:5000", "/Observe");
310         EXPECT_TRUE(resource != NULL);
311         QueryParamsMap query = {};
312         EXPECT_EQ(OC_STACK_OK, resource->observe(ObserveType::ObserveAll, query, &onObserve));
313     }
314
315     TEST(ResourceObserveTest, DISABLED_ResourceObserveLoQos)
316     {
317         QueryParamsMap query = {};
318         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/Observe");
319         EXPECT_TRUE(resource != NULL);
320         EXPECT_EQ(OC_STACK_OK,
321                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
322                         QualityOfService::LowQos));
323     }
324
325     TEST(ResourceObserveTest, DISABLED_ResourceObserveNaQos)
326     {
327         QueryParamsMap query = {};
328         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/Observe");
329         EXPECT_TRUE(resource != NULL);
330         EXPECT_EQ(OC_STACK_OK,
331                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
332                         QualityOfService::NaQos));
333     }
334
335     TEST(ResourceObserveTest, DISABLED_ResourceObserveMidQos)
336     {
337         QueryParamsMap query = {};
338         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/Observe");
339         EXPECT_TRUE(resource != NULL);
340         EXPECT_EQ(OC_STACK_OK,
341                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
342                         QualityOfService::MidQos));
343     }
344
345     TEST(ResourceObserveTest, DISABLED_ResourceObserveHighQos)
346     {
347         QueryParamsMap query = {};
348         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/Observe");
349         EXPECT_TRUE(resource != NULL);
350         EXPECT_EQ(OC_STACK_OK,
351                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
352                         QualityOfService::HighQos));
353     }
354
355     TEST(ResourceObserveTest, DISABLED_ResourceCancelObserveValidUri)
356     {
357         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
358         EXPECT_TRUE(resource != NULL);
359         QueryParamsMap query = {};
360         EXPECT_EQ(OC_STACK_OK, resource->observe(ObserveType::ObserveAll, query, &onObserve));
361         EXPECT_EQ(OC_STACK_OK, resource->cancelObserve());
362     }
363
364     TEST(ResourceObserveTest, DISABLED_ResourceCancelObserveWithNaQos)
365     {
366         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
367         EXPECT_TRUE(resource != NULL);
368         QueryParamsMap query = {};
369         EXPECT_EQ(OC_STACK_OK,
370                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
371                         QualityOfService::NaQos));
372         EXPECT_EQ(OC_STACK_OK, resource->cancelObserve(QualityOfService::NaQos));
373     }
374
375     TEST(ResourceObserveTest, DISABLED_ResourceCancelObserveWithLowQos)
376     {
377         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
378         EXPECT_TRUE(resource != NULL);
379         QueryParamsMap query = {};
380         EXPECT_EQ(OC_STACK_OK,
381                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
382                         QualityOfService::LowQos));
383         EXPECT_EQ(OC_STACK_OK, resource->cancelObserve(QualityOfService::LowQos));
384     }
385
386     TEST(ResourceObserveTest, DISABLED_ResourceCancelObserveWithMidQos)
387     {
388         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
389         EXPECT_TRUE(resource != NULL);
390             QueryParamsMap query = {};
391         EXPECT_EQ(OC_STACK_OK,
392                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
393                         QualityOfService::MidQos));
394         EXPECT_EQ(OC_STACK_OK, resource->cancelObserve(QualityOfService::MidQos));
395     }
396
397     TEST(ResourceObserveTest, DISABLED_ResourceCancelObserveWithHighQos)
398     {
399         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
400         EXPECT_TRUE(resource != NULL);
401             QueryParamsMap query = {};
402         EXPECT_EQ(OC_STACK_OK,
403                 resource->observe(ObserveType::ObserveAll, query, &onObserve,
404                         QualityOfService::HighQos));
405         EXPECT_EQ(OC_STACK_OK, resource->cancelObserve(QualityOfService::HighQos));
406     }
407
408     //DeleteResource
409     TEST(DeleteResourceTest, DISABLED_DeleteResourceValidUri)
410     {
411         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
412         EXPECT_TRUE(resource != NULL);
413         EXPECT_EQ(OC_STACK_OK, resource->deleteResource(&deleteResponse));
414     }
415
416     TEST(DeleteResourceTest, DISABLED_DeleteResourceWithLowQos)
417     {
418         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
419         EXPECT_TRUE(resource != NULL);
420         EXPECT_EQ(OC_STACK_OK,
421                 resource->deleteResource(&deleteResponse, QualityOfService::LowQos));
422     }
423
424     TEST(DeleteResourceTest, DISABLED_DeleteResourceWithMidQos)
425     {
426         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
427         EXPECT_TRUE(resource != NULL);
428         EXPECT_EQ(OC_STACK_OK,
429                 resource->deleteResource(&deleteResponse, QualityOfService::MidQos));
430     }
431
432     TEST(DeleteResourceTest, DISABLED_DeleteResourceWithHighQos)
433     {
434         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
435         EXPECT_TRUE(resource != NULL);
436         EXPECT_EQ(OC_STACK_OK,
437                 resource->deleteResource(&deleteResponse, QualityOfService::HighQos));
438     }
439     TEST(DeleteResourceTest, DISABLED_DeleteResourceWithNaQos)
440     {
441         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
442         EXPECT_TRUE(resource != NULL);
443         EXPECT_EQ(OC_STACK_OK, resource->deleteResource(&deleteResponse, QualityOfService::NaQos));
444     }
445
446     //GetResourceInterfaces Test
447     TEST(GetResourceInterfacesTest, GetResourceInterfaces)
448     {
449         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
450         EXPECT_TRUE(resource != NULL);
451         EXPECT_TRUE(resource->getResourceInterfaces().front() == DEFAULT_INTERFACE);
452     }
453
454     //GetResourceTypes Test
455     TEST(GetResourceTypesTest, GetResourceTypes)
456     {
457         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
458         EXPECT_TRUE(resource != NULL);
459         EXPECT_TRUE(resource->getResourceTypes().front() == "intel.rpost");
460     }
461
462     // Host Test
463     TEST(HostTest, Host)
464     {
465         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
466         EXPECT_TRUE(resource != NULL);
467         EXPECT_TRUE(resource->host() == "coap://192.168.1.2:5000");
468     }
469
470     //Uri Test
471     TEST(UriTest, Uri)
472     {
473         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
474         EXPECT_TRUE(resource != NULL);
475         EXPECT_TRUE(resource->uri() == "/resource");
476     }
477
478     //ConnectivityType Test
479     TEST(ConnectivityTypeTest, ConnectivityType)
480     {
481         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
482         EXPECT_TRUE(resource != NULL);
483         EXPECT_TRUE(resource->connectivityType() == CT_DEFAULT);
484     }
485
486     //IsObservable Test
487     TEST(IsObservableTest, isObservable)
488     {
489         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
490         EXPECT_TRUE(resource != NULL);
491         EXPECT_FALSE(resource->isObservable());
492     }
493
494     //SID Test
495     TEST(SidTest, sid)
496     {
497         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
498         EXPECT_TRUE(resource != NULL);
499         EXPECT_TRUE(resource->sid() == "");
500     }
501
502     //UniqueIdentifier Test
503     TEST(UniqueIdentifierTest, uniqueIdentifier)
504     {
505         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
506         EXPECT_TRUE(resource != NULL);
507         std::ostringstream ss;
508         ss << resource->uniqueIdentifier();
509         EXPECT_TRUE(ss.str() == "/resource");
510     }
511
512     // HeaderOptions Test
513     TEST(HeaderOptionsTest, SetHeaderOptionsValidInput)
514     {
515         const uint16_t API_VERSION = 2048;
516         const uint16_t TOKEN = 3000;
517         HeaderOptions headerOptions;
518         HeaderOption::OCHeaderOption apiVersion(API_VERSION, "v.1.0");
519         HeaderOption::OCHeaderOption clientToken(TOKEN, "21ae43gf");
520         headerOptions.push_back(apiVersion);
521         headerOptions.push_back(clientToken);
522
523         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
524         EXPECT_TRUE(resource != NULL);
525         EXPECT_NO_THROW(resource->setHeaderOptions(headerOptions));
526         EXPECT_NO_THROW(resource->unsetHeaderOptions());
527     }
528
529     TEST(HeaderOptionsTest, SetHeaderOptionsEmptyInput)
530     {
531         OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource");
532         EXPECT_TRUE(resource != NULL);
533         HeaderOptions headerOptions;
534         EXPECT_NO_THROW(resource->setHeaderOptions(headerOptions));
535         EXPECT_NO_THROW(resource->unsetHeaderOptions());
536     }
537 }
538