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