Merge test folder of test branch
[iotivity.git] / test / src / tc / ns / gtest / cpp / src / btc / NSProviderCppTest.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 "NSCppHelper.h"
23
24 class NSProviderCppTest_btc: public ::testing::Test
25 {
26 public:
27     NSCppHelper* m_pNSHelper;
28     NSProviderService* m_pNSProviderServiceInstance;
29     shared_ptr< OIC::Service::NSConsumer > m_pNSConsumer;
30     OIC::Service::NSResult m_result;
31     string m_consumerID = "";
32     NSProviderService::ProviderConfig m_providerCfgTrue;
33     NSProviderService::ProviderConfig m_providerCfgFalse;
34     bool m_accepted = false;
35     bool m_isProviderStarted = false;
36
37     virtual void SetUp()
38     {
39         CommonTestUtil::runCommonTCSetUpPart();
40
41         m_consumerID = "";
42
43         m_pNSHelper = NSCppHelper::getInstance();
44
45         m_pNSProviderServiceInstance = nullptr;
46         m_pNSProviderServiceInstance = NSProviderService::getInstance();
47         ASSERT_NE(nullptr,m_pNSProviderServiceInstance)<< "NSProviderService instance could not be found";
48
49         m_providerCfgTrue.m_subscribeRequestCb = subscribeRequestCallback;
50         m_providerCfgTrue.m_syncInfoCb = syncCallback;
51         m_providerCfgTrue.subControllability = true;
52
53         m_providerCfgFalse.m_subscribeRequestCb = subscribeRequestCallback;
54         m_providerCfgFalse.m_syncInfoCb = syncCallback;
55         m_providerCfgFalse.subControllability = false;
56
57         m_result = OIC::Service::NSResult::FAIL;
58
59         IOTIVITYTEST_LOG(INFO, "SetUp called");
60     }
61
62     virtual void TearDown()
63     {
64         CommonTestUtil::runCommonTCTearDownPart();
65
66         CommonUtil::killApp(CONSUMER_SIMULATOR);
67         CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
68
69         if (m_isProviderStarted)
70         {
71             m_pNSProviderServiceInstance->stop();
72             m_isProviderStarted = false;
73         }
74
75         IOTIVITYTEST_LOG(INFO, "TearDown called");
76     }
77
78     static void syncCallback(OIC::Service::NSSyncInfo sync)
79     {
80         IOTIVITYTEST_LOG(INFO, "NSProviderSyncInfoCallback() called !!");
81     }
82
83     static void subscribeRequestCallback(shared_ptr< OIC::Service::NSConsumer > consumer)
84     {
85         IOTIVITYTEST_LOG(INFO, "subscribeRequestCallback() called !!");
86         IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", consumer->getConsumerId().c_str());
87     }
88 };
89
90 /**
91  * @since 2016-09-29
92  * @see void Configure(const PlatformConfig& config)
93  * @see OCStackResult stopPresence()
94  * @objective Test 'getInstance' function with positive basic way
95  * @target NSProviderService *getInstance()
96  * @test_data None
97  * @pre_condition Perform Configure() and stopPresence() API
98  * @procedure Perform getInstance() API
99  * @post_condition None
100  * @expected The API should return NSProviderService instance
101  **/
102 #if defined(__LINUX__) || defined(__TIZEN__)
103 TEST_F(NSProviderCppTest_btc, ProviderServiceGetInstance_SRC_P)
104 {
105     ASSERT_NE(nullptr,NSProviderService::getInstance())<< "getInstance does not return instance";
106 }
107 #endif
108
109 /**
110  * @since 2016-09-29
111  * @see void Configure(const PlatformConfig& config)
112  * @see OCStackResult stopPresence()
113  * @see NSProviderService *getInstance()
114  * @objective Test 'start' function with positive basic way
115  * @target NSResult start(ProviderConfig config)
116  * @test_data ProviderConfig ProviderConfig Callback function pointers to onConsumerSubscribed,
117  *                    and onMessageSynchronized function listeners
118  * @pre_condition   1. Perform Configure() and stopPresence() API
119  *                  2. Get NSProviderService instance using getInstance() method
120  * @procedure Perform start() API with subcontrollability true
121  * @post_condition Perform stop() API using NSProviderService instance
122  * @expected The API should return OK
123  **/
124 #if defined(__LINUX__) || defined(__TIZEN__)
125 TEST_F(NSProviderCppTest_btc, ProviderServiceStartSubcontrollabilityTrue_SRC_P)
126 {
127     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
128     m_isProviderStarted = true;
129     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "start did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
130     IOTIVITYTEST_LOG(INFO, "Testcase PAased");
131 }
132 #endif
133
134 /**
135  * @since 2016-09-29
136  * @see void Configure(const PlatformConfig& config)
137  * @see OCStackResult stopPresence()
138  * @see NSProviderService *getInstance()
139  * @objective Test 'start' function with positive basic way
140  * @target NSResult start(ProviderConfig config)
141  * @test_data ProviderConfig ProviderConfig Callback function pointers to onConsumerSubscribed,
142  *                    and onMessageSynchronized function listeners
143  * @pre_condition   1. Perform Configure() and stopPresence() API
144  *                  2. Get NSProviderService instance using getInstance() method
145  * @procedure Perform start() API with subcontrollability false
146  * @post_condition Perform stop() API using NSProviderService instance
147  * @expected The API should return OK
148  **/
149 #if defined(__LINUX__) || defined(__TIZEN__)
150 TEST_F(NSProviderCppTest_btc, ProviderServiceStartSubcontrollabilityFalse_SRC_P)
151 {
152     m_result = m_pNSProviderServiceInstance->start(m_providerCfgFalse);
153     m_isProviderStarted = true;
154     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
155 }
156 #endif
157
158 /**
159  * @since 2016-09-29
160  * @see void Configure(const PlatformConfig& config)
161  * @see OCStackResult stopPresence()
162  * @see NSProviderService *getInstance()
163  * @objective Test 'start' function with positive basic way
164  * @target NSResult start(ProviderConfig config)
165  * @test_data ProviderConfig ProviderConfig Callback function pointers to onConsumerSubscribed,
166  *                    and onMessageSynchronized function listeners
167  * @pre_condition   1. Perform Configure() and stopPresence() API
168  *                  2. Get NSProviderService instance using getInstance() method
169  * @procedure Perform start() API without configuring
170  * @post_condition Perform stop() API using NSProviderService instance
171  * @expected The API should return OK
172  **/
173 #if defined(__LINUX__) || defined(__TIZEN__)
174 TEST_F(NSProviderCppTest_btc, ProviderServiceStart_USV_P)
175 {
176     NSProviderService::ProviderConfig providerCfg;
177     m_result = m_pNSProviderServiceInstance->start(providerCfg);
178     m_isProviderStarted = true;
179     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "start did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
180 }
181 #endif
182
183 /**
184  * @since 2016-09-29
185  * @see void Configure(const PlatformConfig& config)
186  * @see OCStackResult stopPresence()
187  * @see NSProviderService *getInstance()
188  * @see NSResult start(ProviderConfig config)
189  * @objective Test 'stop' function with positive basic way
190  * @target NSResult stop()
191  * @test_data None
192  * @pre_condition   1. Perform Configure() and stopPresence() API
193  *                  2. Get NSProviderService instance using getInstance() method
194  *                  3. Perform start() API with subcontrollability true
195  * @procedure Perform stop() API
196  * @post_condition None
197  * @expected The API should return OK
198  **/
199 #if defined(__LINUX__) || defined(__TIZEN__)
200 TEST_F(NSProviderCppTest_btc, ProviderServiceStop_SRC_P)
201 {
202     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
203     m_isProviderStarted = true;
204     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "start did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
205     IOTIVITYTEST_LOG(INFO, "Provider Servuce started successfully");
206     CommonUtil::waitInSecond(WAIT_TIME_MIN + WAIT_TIME_MIN);
207     m_result = m_pNSProviderServiceInstance->stop();
208     m_isProviderStarted = false;
209     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "stop did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
210 }
211 #endif
212
213 /**
214  * @since 2016-09-29
215  * @see void Configure(const PlatformConfig& config)
216  * @see OCStackResult stopPresence()
217  * @see NSProviderService *getInstance()
218  * @see NSResult start(ProviderConfig config)
219  * @objective Test 'createMessage' function with positive basic way
220  * @target NSMessage *createMessage()
221  * @test_data None
222  * @pre_condition   1. Perform Configure() and stopPresence() API
223  *                  2. Get NSProviderService instance using getInstance() method
224  *                  3. Perform start() API with subcontrollability true
225  * @procedure Perform createMessage() API
226  * @post_condition Perform stop() API using NSProviderService instance
227  * @expected The API should return NSMessage instance
228  **/
229 #if defined(__LINUX__) || defined(__TIZEN__)
230 TEST_F(NSProviderCppTest_btc, CreateMessage_SRC_P)
231 {
232     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
233     m_isProviderStarted = true;
234     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
235
236     OIC::Service::NSMessage emptyMsg;
237     OIC::Service::NSMessage msg = m_pNSProviderServiceInstance->createMessage();
238     ASSERT_NE(emptyMsg.getProviderId(), msg.getProviderId())<< "createMessage did not return message";
239 }
240 #endif
241
242 /**
243  * @since 2016-09-29
244  * @see void Configure(const PlatformConfig& config)
245  * @see OCStackResult stopPresence()
246  * @see NSProviderService *getInstance()
247  * @see NSResult start(ProviderConfig config)
248  * @see NSMessage *createMessage()
249  * @objective Test 'sendMessage' function with positive basic way
250  * @target NSResult sendMessage(NSMessage *msg)
251  * @test_data msg NSMessage instance
252  * @pre_condition   1. Perform Configure() and stopPresence() API
253  *                  2. Get NSProviderService instance using getInstance() method
254  *                  3. Perform start() API with subcontrollability true
255  *                  4. Perform createMessage() API to get NSMessage instance
256  * @procedure Perform sendMessage() API with that NSMessage instance
257  * @post_condition Perform stop() API using NSProviderService instance
258  * @expected The API should return OK
259  **/
260 #if defined(__LINUX__) || defined(__TIZEN__)
261 TEST_F(NSProviderCppTest_btc, SendMessage_SRC_P)
262 {
263     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
264     m_isProviderStarted = true;
265     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
266     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
267
268     m_result = m_pNSProviderServiceInstance->sendMessage(
269             m_pNSProviderServiceInstance->createMessage());
270     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "sendMessage did not "
271     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
272 }
273 #endif
274
275 /**
276  * @since 2016-09-29
277  * @see void Configure(const PlatformConfig& config)
278  * @see OCStackResult stopPresence()
279  * @see NSProviderService *getInstance()
280  * @see NSResult start(ProviderConfig config)
281  * @objective Test 'sendMessage' function with negative basic way
282  * @target NSResult sendMessage(NSMessage *msg)
283  * @test_data msg NSMessage instance
284  * @pre_condition   1. Perform Configure() and stopPresence() API
285  *                  2. Get NSProviderService instance using getInstance() method
286  *                  3. Perform start() API with subcontrollability true
287  * @procedure Perform sendMessage() API with null pointer
288  * @post_condition Perform stop() API using NSProviderService instance
289  * @expected The API should return OK
290  **/
291 #if defined(__LINUX__) || defined(__TIZEN__)
292 TEST_F(NSProviderCppTest_btc, SendMessage_NV_N)
293 {
294     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
295     m_isProviderStarted = true;
296     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "start did not "
297             "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
298
299     OIC::Service::NSMessage message;
300     m_result = m_pNSProviderServiceInstance->sendMessage(message);
301     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "sendMessage did not return success. "
302             "Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
303 }
304 #endif
305
306 /**
307  * @since 2016-09-29
308  * @see void Configure(const PlatformConfig& config)
309  * @see OCStackResult stopPresence()
310  * @see NSProviderService *getInstance()
311  * @see NSResult start(ProviderConfig config)
312  * @objective Test 'sendSyncInfo' function with positive basic way
313  * @target void sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)
314  * @test_data       1. messageId 1
315  *                  2. NSSyncType NS_SYNC_READ
316  * @pre_condition   1. Perform Configure() and stopPresence() API
317  *                  2. Get NSProviderService instance using getInstance() method
318  *                  3. Perform start() API with subcontrollability true
319  * @procedure Perform sendSyncInfo() API
320  * @post_condition Perform stop() API using NSProviderService instance
321  * @expected The API should not throw any exceptions
322  **/
323 #if defined(__LINUX__) || defined(__TIZEN__)
324 TEST_F(NSProviderCppTest_btc, SendSyncInfo_SRC_P)
325 {
326     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
327     m_isProviderStarted = true;
328     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
329     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
330
331     uint64_t messageId = 1;
332     OIC::Service::NSSyncInfo::NSSyncType type = OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ;
333
334     try
335     {
336         m_pNSProviderServiceInstance->sendSyncInfo(messageId, type);
337     }
338     catch (exception &e)
339     {
340         SET_FAILURE(
341                 "Exception occurs while calling sendSyncInfo. Exception is: " + string(e.what()));
342     }
343 }
344 #endif
345
346 /**
347  * @since 2016-09-29
348  * @see void Configure(const PlatformConfig& config)
349  * @see OCStackResult stopPresence()
350  * @see NSProviderService *getInstance()
351  * @see NSResult start(ProviderConfig config)
352  * @objective Test 'registerTopic' function with positive basic way
353  * @target NSResult registerTopic(const std::string &topicName)
354  * @test_data topicName = "TEST_TOPIC_1"
355  * @pre_condition   1. Perform Configure() and stopPresence() API
356  *                  2. Get NSProviderService instance using getInstance() method
357  *                  3. Perform start() API with subcontrollability true
358  * @procedure Perform registerTopic() API
359  * @post_condition Perform stop() API using NSProviderService instance
360  * @expected The API should return OK
361  **/
362 #if defined(__LINUX__) || defined(__TIZEN__)
363 TEST_F(NSProviderCppTest_btc, RegisterTopic_SRC_P)
364 {
365     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
366     m_isProviderStarted = true;
367     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
368     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
369
370     m_result = m_pNSProviderServiceInstance->registerTopic(TEST_TOPIC_1);
371     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "registerTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
372 }
373 #endif
374
375 /**
376  * @since 2016-09-29
377  * @see void Configure(const PlatformConfig& config)
378  * @see OCStackResult stopPresence()
379  * @see NSProviderService *getInstance()
380  * @see NSResult start(ProviderConfig config)
381  * @objective Test 'registerTopic' function with negative basic way
382  * @target NSResult registerTopic(const std::string &topicName)
383  * @test_data topicName = ""
384  * @pre_condition   1. Perform Configure() and stopPresence() API
385  *                  2. Get NSProviderService instance using getInstance() method
386  *                  3. Perform start() API with subcontrollability true
387  * @procedure Perform registerTopic() API with empty string as parameter
388  * @post_condition Perform stop() API using NSProviderService instance
389  * @expected The API should return FAIL
390  **/
391 #if defined(__LINUX__) || defined(__TIZEN__)
392 TEST_F(NSProviderCppTest_btc, RegisterTopic_ESV_N)
393 {
394     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
395     m_isProviderStarted = true;
396     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
397     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
398
399     m_result = m_pNSProviderServiceInstance->registerTopic(EMPTY_STRING);
400     ASSERT_EQ(OIC::Service::NSResult::FAIL,m_result)<< "registerTopic did not return success. Expected: FAIL. Actual: " << NSCppUtility::getResultString(m_result);
401 }
402 #endif
403
404 /**
405  * @since 2016-09-29
406  * @see void Configure(const PlatformConfig& config)
407  * @see OCStackResult stopPresence()
408  * @see NSProviderService *getInstance()
409  * @see NSResult start(ProviderConfig config)
410  * @see NSResult registerTopic(const std::string &topicName)
411  * @objective Test 'unregisterTopic' function with positive basic way
412  * @target NSResult unregisterTopic(const std::string &topicName)
413  * @test_data topicName = "TEST_TOPIC_1"
414  * @pre_condition   1. Perform Configure() and stopPresence() API
415  *                  2. Get NSProviderService instance using getInstance() method
416  *                  3. Perform start() API with subcontrollability true
417  *                  4. Perform registerTopic() API
418  * @procedure Perform unregisterTopic() API
419  * @post_condition Perform stop() API using NSProviderService instance
420  * @expected The API should return OK
421  **/
422 #if defined(__LINUX__) || defined(__TIZEN__)
423 TEST_F(NSProviderCppTest_btc, UnregisterTopic_SRC_P)
424 {
425     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
426     m_isProviderStarted = true;
427     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
428     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
429
430     m_result = m_pNSProviderServiceInstance->registerTopic(TEST_TOPIC_1);
431     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "registerTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
432
433     m_result = m_pNSProviderServiceInstance->unregisterTopic(TEST_TOPIC_1);
434     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "unregisterTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
435 }
436 #endif
437
438 /**
439  * @since 2016-09-29
440  * @see void Configure(const PlatformConfig& config)
441  * @see OCStackResult stopPresence()
442  * @see NSProviderService *getInstance()
443  * @see NSResult start(ProviderConfig config)
444  * @see NSResult registerTopic(const std::string &topicName)
445  * @objective Test 'getRegisteredTopicList' function with positive basic way
446  * @target NSTopicsList *getRegisteredTopicList()
447  * @test_data None
448  * @pre_condition   1. Perform Configure() and stopPresence() API
449  *                  2. Get NSProviderService instance using getInstance() method
450  *                  3. Perform start() API with subcontrollability true
451  *                  4. Perform registerTopic() API
452  * @procedure Perform getRegisteredTopicList() API
453  * @post_condition Perform stop() API using NSProviderService instance
454  * @expected The API should return NSTopicsList
455  **/
456 #if defined(__LINUX__) || defined(__TIZEN__)
457 TEST_F(NSProviderCppTest_btc, GetRegisteredTopicList_SRC_P)
458 {
459     m_result = m_pNSProviderServiceInstance->start(m_providerCfgTrue);
460     m_isProviderStarted = true;
461     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "start did not "
462     "return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
463
464     m_result = m_pNSProviderServiceInstance->registerTopic(TEST_TOPIC_1);
465     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "registerTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
466
467     shared_ptr< OIC::Service::NSTopicsList > topicList;
468     topicList = m_pNSProviderServiceInstance->getRegisteredTopicList();
469     ASSERT_NE(nullptr,topicList)<< "getRegisteredTopicList does not return topic list";
470 }
471 #endif
472
473 /**
474  * @since 2016-09-28
475  * @see void Configure(const PlatformConfig& config)
476  * @see OCStackResult stopPresence()
477  * @objective Test 'NSConsumer()' constructor with positive basic way
478  * @target NSConsumer()
479  * @test_data None
480  * @pre_condition Perform Configure() and stopPresence() API
481  * @procedure Perform NSConsumer() API
482  * @post_condition None
483  * @expected The API should return NSConsumer instance
484  **/
485 #if defined(__LINUX__) || defined(__TIZEN__)
486 TEST_F(NSProviderCppTest_btc, ConsumerConstructor_SRC_P)
487 {
488     OIC::Service::NSConsumer* nsConsumer = new OIC::Service::NSConsumer("New Consumer");
489     ASSERT_NE(nullptr, nsConsumer)<< "NSConsumer instance could not be created";
490 }
491 #endif
492
493 /**
494  * @since 2016-09-28
495  * @see void Configure(const PlatformConfig& config)
496  * @see OCStackResult stopPresence()
497  * @see NSProviderService *getInstance()
498  * @see NSResult start(ProviderConfig config)
499  * @see NSConsumerService *getInstance()
500  * @see void start(ProviderDiscoveredCallback providerDiscovered)
501  * @see NSConsumer *getConsumer(const std::string &id)
502  * @objective Test 'getConsumerId' function with positive basic way
503  * @target std::string getConsumerId() const
504  * @test_data None
505  * @pre_condition   1. Perform Configure() and stopPresence() API
506  *                  2. Get NSProviderService instance using getInstance() method
507  *                  3. Perform start() API with subcontrollability true
508  *                  4. Start consumer service
509  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
510  * @procedure Perform getConsumerId() API with using that NSConsumer instance
511  * @post_condition Perform stop() API using NSProviderService instance
512  * @expected The API should return consumer ID
513  **/
514 #if defined(__LINUX__) || defined(__TIZEN__)
515 TEST_F(NSProviderCppTest_btc, GetConsumerID_SRC_P)
516 {
517     m_pNSConsumer = m_pNSHelper->getConsumer(true);
518     if (!m_pNSConsumer)
519     {
520         ASSERT_TRUE(false)<< "NSConsumer instance could not be created";
521     }
522
523     m_consumerID = m_pNSConsumer->getConsumerId();
524     IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", m_consumerID.c_str());
525     ASSERT_NE("",m_consumerID)<< "getConsumerId did not return Consumer ID";
526 }
527 #endif
528
529 /**
530  * @since 2016-09-28
531  * @see void Configure(const PlatformConfig& config)
532  * @see OCStackResult stopPresence()
533  * @see NSProviderService *getInstance()
534  * @see NSResult start(ProviderConfig config)
535  * @see NSConsumerService *getInstance()
536  * @see void start(ProviderDiscoveredCallback providerDiscovered)
537  * @see NSConsumer *getConsumer(const std::string &id)
538  * @objective Test 'acceptSubscription' function with positive basic way with accepted status true
539  * @target int acceptSubscription(bool accepted)
540  * @test_data accepted true
541  * @pre_condition   1. Perform Configure() and stopPresence() API
542  *                  2. Get NSProviderService instance using getInstance() method
543  *                  3. Perform start() API with subcontrollability true
544  *                  4. Start consumer service
545  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
546  * @procedure Perform acceptSubscription() API with using that NSConsumer instance
547  * @post_condition Perform stop() API using NSProviderService instance
548  * @expected The API should return 100
549  **/
550 #if defined(__LINUX__) || defined(__TIZEN__)
551 TEST_F(NSProviderCppTest_btc, AcceptSubscriptionAllow_SRC_P)
552 {
553     m_pNSConsumer = m_pNSHelper->getConsumer(true);
554     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
555
556     m_accepted = true;
557     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
558 }
559 #endif
560
561 /**
562  * @since 2016-09-28
563  * @see void Configure(const PlatformConfig& config)
564  * @see OCStackResult stopPresence()
565  * @see NSProviderService *getInstance()
566  * @see NSResult start(ProviderConfig config)
567  * @see NSConsumerService *getInstance()
568  * @see void start(ProviderDiscoveredCallback providerDiscovered)
569  * @see NSConsumer *getConsumer(const std::string &id);
570  * @objective Test 'acceptSubscription' function with positive basic way with accepted status false
571  * @target int acceptSubscription(bool accepted)
572  * @test_data accepted false
573  * @pre_condition   1. Perform Configure() and stopPresence() API
574  *                  2. Get NSProviderService instance using getInstance() method
575  *                  3. Perform start() API with subcontrollability true
576  *                  4. Start consumer service
577  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
578  * @procedure Perform acceptSubscription() API with using that NSConsumer instance
579  * @post_condition Perform stop() API using NSProviderService instance
580  * @expected The API should return 100
581  **/
582 #if defined(__LINUX__) || defined(__TIZEN__)
583 TEST_F(NSProviderCppTest_btc, AcceptSubscriptionDeny_SRC_P)
584 {
585     m_pNSConsumer = m_pNSHelper->getConsumer(true);
586     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
587
588     m_accepted = false;
589     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
590 }
591 #endif
592
593 /**
594  * @since 2016-09-28
595  * @see void Configure(const PlatformConfig& config)
596  * @see OCStackResult stopPresence()
597  * @see NSProviderService *getInstance()
598  * @see NSResult start(ProviderConfig config)
599  * @see NSConsumerService *getInstance()
600  * @see void start(ProviderDiscoveredCallback providerDiscovered)
601  * @see NSConsumer *getConsumer(const std::string &id)
602  * @see int acceptSubscription(bool accepted)
603  * @see NSResult registerTopic(const std::string &topicName)
604  * @objective Test 'setTopic' function with positive basic way
605  * @target NSResult setTopic(const std::string &topicName)
606  * @test_data topicName = "TEST_TOPIC_1"
607  * @pre_condition   1. Perform Configure() and stopPresence() API
608  *                  2. Get NSProviderService instance using getInstance() method
609  *                  3. Perform start() API with subcontrollability true
610  *                  4. Start consumer service
611  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
612  *                  6. Perform getConsumerId() API with using that NSConsumer instance
613  *                  7. Perform acceptSubscription() API
614  *                  8. Register one topic using registerTopic() API
615  * @procedure Perform setTopic() API for that registered topic
616  * @post_condition Perform stop() API using NSProviderService instance
617  * @expected The API should return OK
618  **/
619 #if defined(__LINUX__) || defined(__TIZEN__)
620 TEST_F(NSProviderCppTest_btc, SetTopic_SRC_P)
621 {
622     m_pNSConsumer = m_pNSHelper->getConsumer(true);
623     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
624
625     m_accepted = true;
626     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
627     CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
628
629     m_result = m_pNSHelper->getProviderService()->registerTopic(TEST_TOPIC_1);
630     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "registerTopic did "
631     "not return success. Expected: OK. Actual: " <<NSCppUtility::getResultString(m_result);
632
633     m_result = m_pNSConsumer->setTopic(TEST_TOPIC_1);
634     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "setTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
635 }
636 #endif
637
638 /**
639  * @since 2016-09-28
640  * @see void Configure(const PlatformConfig& config)
641  * @see OCStackResult stopPresence()
642  * @see NSProviderService *getInstance()
643  * @see NSResult start(ProviderConfig config)
644  * @see NSConsumerService *getInstance()
645  * @see void start(ProviderDiscoveredCallback providerDiscovered)
646  * @see NSConsumer *getConsumer(const std::string &id)
647  * @see int acceptSubscription(bool accepted)
648  * @objective Test 'setTopic' function with negative basic way
649  * @target NSResult setTopic(const std::string &topicName)
650  * @test_data topicName = "TEST_TOPIC_1"
651  * @pre_condition   1. Perform Configure() and stopPresence() API
652  *                  2. Get NSProviderService instance using getInstance() method
653  *                  3. Perform start() API with subcontrollability true
654  *                  4. Start consumer service
655  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
656  *                  6. Perform getConsumerId() API with using that NSConsumer instance
657  *                  7. Perform acceptSubscription() API
658  * @procedure Perform setTopic() API without registering the topic
659  * @post_condition Perform stop() API using NSProviderService instance
660  * @expected The API should not return OK
661  **/
662 #if defined(__LINUX__) || defined(__TIZEN__)
663 TEST_F(NSProviderCppTest_btc, SetTopic_USV_N)
664 {
665     m_pNSConsumer = m_pNSHelper->getConsumer(true);
666     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
667
668     m_consumerID = m_pNSConsumer->getConsumerId();
669     IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", m_consumerID.c_str());
670     ASSERT_NE("",m_consumerID)<< "getConsumerId did not return Consumer ID";
671
672     m_accepted = true;
673     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
674     CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
675
676     m_result = m_pNSConsumer->setTopic(TEST_TOPIC_1);
677     ASSERT_NE(OIC::Service::NSResult::OK,m_result)<< "setTopic did not return success. Expected: Not OK. Actual: " << NSCppUtility::getResultString(m_result);
678 }
679 #endif
680
681 /**
682  * @since 2016-09-28
683  * @see void Configure(const PlatformConfig& config)
684  * @see OCStackResult stopPresence()
685  * @see NSProviderService *getInstance()
686  * @see NSResult start(ProviderConfig config)
687  * @see NSConsumerService *getInstance()
688  * @see void start(ProviderDiscoveredCallback providerDiscovered)
689  * @see NSConsumer *getConsumer(const std::string &id)
690  * @see int acceptSubscription(bool accepted)
691  * @see NSResult registerTopic(const std::string &topicName)
692  * @see NSResult setTopic(const std::string &topicName)
693  * @objective Test 'unsetTopic' function with positive basic way
694  * @target NSResult unsetTopic(const std::string &topicName)
695  * @test_data topicName = "TEST_TOPIC_1"
696  * @pre_condition   1. Perform Configure() and stopPresence() API
697  *                  2. Get NSProviderService instance using getInstance() method
698  *                  3. Perform start() API with subcontrollability true
699  *                  4. Start consumer service
700  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
701  *                  6. Perform getConsumerId() API with using that NSConsumer instance
702  *                  7. Perform acceptSubscription() API
703  *                  8. Register one topic using registerTopic() API
704  *                  9. Perform setTopic() API for that registered topic
705  * @procedure Perform unsetTopic() API for that set topic
706  * @post_condition Perform stop() API using NSProviderService instance
707  * @expected The API should return OK
708  **/
709 #if defined(__LINUX__) || defined(__TIZEN__)
710 TEST_F(NSProviderCppTest_btc, UnsetTopic_SRC_P)
711 {
712     m_pNSConsumer = m_pNSHelper->getConsumer(true);
713     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
714
715     m_consumerID = m_pNSConsumer->getConsumerId();
716     IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", m_consumerID.c_str());
717     ASSERT_NE("",m_consumerID)<< "getConsumerId did not return Consumer ID";
718
719     m_accepted = true;
720     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
721     CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
722
723     m_result = m_pNSHelper->getProviderService()->registerTopic(TEST_TOPIC_1);
724     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "registerTopic did "
725     "not return success. Expected: OK. Actual: " <<NSCppUtility::getResultString(m_result);
726
727     m_result = m_pNSConsumer->setTopic(TEST_TOPIC_1);
728     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "setTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
729
730     m_result = m_pNSConsumer->unsetTopic(TEST_TOPIC_1);
731     ASSERT_EQ(OIC::Service::NSResult::OK,m_result)<< "unsetTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
732 }
733 #endif
734
735 /**
736  * @since 2016-09-28
737  * @see void Configure(const PlatformConfig& config)
738  * @see OCStackResult stopPresence()
739  * @see NSProviderService *getInstance()
740  * @see NSResult start(ProviderConfig config)
741  * @see NSConsumerService *getInstance()
742  * @see void start(ProviderDiscoveredCallback providerDiscovered)
743  * @see NSConsumer *getConsumer(const std::string &id)
744  * @see int acceptSubscription(bool accepted)
745  * @objective Test 'unsetTopic' function with negative basic way
746  * @target NSResult unsetTopic(const std::string &topicName)
747  * @test_data topicName = "TEST_TOPIC_1"
748  * @pre_condition   1. Perform Configure() and stopPresence() API
749  *                  2. Get NSProviderService instance using getInstance() method
750  *                  3. Perform start() API with subcontrollability true
751  *                  4. Start consumer service
752  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
753  *                  6. Perform getConsumerId() API with using that NSConsumer instance
754  *                  7. Perform acceptSubscription() API
755  * @procedure Perform unsetTopic() API without registering and setting topic
756  * @post_condition Perform stop() API using NSProviderService instance
757  * @expected The API should not return OK
758  **/
759 #if defined(__LINUX__) || defined(__TIZEN__)
760 TEST_F(NSProviderCppTest_btc, UnsetTopic_USV_N)
761 {
762     m_pNSConsumer = m_pNSHelper->getConsumer(true);
763     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
764
765     m_consumerID = m_pNSConsumer->getConsumerId();
766     IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", m_consumerID.c_str());
767     ASSERT_NE("",m_consumerID)<< "getConsumerId did not return Consumer ID";
768
769     m_accepted = true;
770     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
771     CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
772
773     m_result = m_pNSConsumer->unsetTopic(TEST_TOPIC_1);
774     ASSERT_NE(OIC::Service::NSResult::OK,m_result)<< "unsetTopic did not return success. Expected: Not OK. Actual: " << NSCppUtility::getResultString(m_result);
775 }
776 #endif
777
778 /**
779  * @since 2016-09-28
780  * @see void Configure(const PlatformConfig& config)
781  * @see OCStackResult stopPresence()
782  * @see NSProviderService *getInstance()
783  * @see NSResult start(ProviderConfig config)
784  * @see NSConsumerService *getInstance()
785  * @see void start(ProviderDiscoveredCallback providerDiscovered)
786  * @see NSConsumer *getConsumer(const std::string &id)
787  * @see int acceptSubscription(bool accepted)
788  * @see NSResult registerTopic(const std::string &topicName)
789  * @see NSResult setTopic(const std::string &topicName)
790  * @objective Test 'getConsumerTopicList' function with positive basic way
791  * @target NSTopicsList *getConsumerTopicList()
792  * @test_data topicName = "TEST_TOPIC_1"
793  * @pre_condition   1. Perform Configure() and stopPresence() API
794  *                  2. Get NSProviderService instance using getInstance() method
795  *                  3. Perform start() API with subcontrollability true
796  *                  4. Start consumer service
797  *                  5. Get NSConsumer instance from getConsumer() API of NSProviderService class
798  *                  6. Perform getConsumerId() API with using that NSConsumer instance
799  *                  7. Perform acceptSubscription() API
800  *                  8. Register one topic using registerTopic() API
801  *                  9. Perform setTopic() API for that registered topic
802  * @procedure Perform getConsumerTopicList() API
803  * @post_condition Perform stop() API using NSProviderService instance
804  * @expected The API should return NSTopicsList instance
805  **/
806 #if defined(__LINUX__) || defined(__TIZEN__)
807 TEST_F(NSProviderCppTest_btc, GetConsumerTopicList_SRC_P)
808 {
809     m_pNSConsumer = m_pNSHelper->getConsumer(true);
810     ASSERT_NE(nullptr,m_pNSConsumer)<< "NSConsumer instance could not be created";
811
812     m_consumerID = m_pNSConsumer->getConsumerId();
813     IOTIVITYTEST_LOG(INFO, "Consumer ID: %s", m_consumerID.c_str());
814     ASSERT_NE("",m_consumerID)<< "getConsumerId did not return Consumer ID";
815
816     m_accepted = true;
817     ASSERT_EQ(OIC::Service::NSResult::OK, m_pNSConsumer->acceptSubscription(m_accepted))<< "acceptSubscription did not return success";
818     CommonUtil::waitInSecond(WAIT_TIME_DEFAULT);
819
820     m_result = m_pNSHelper->getProviderService()->registerTopic(TEST_TOPIC_1);
821     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "registerTopic did "
822     "not return success. Expected: OK. Actual: " <<NSCppUtility::getResultString(m_result);
823
824     m_result = m_pNSConsumer->setTopic(TEST_TOPIC_1);
825     ASSERT_EQ(OIC::Service::NSResult::OK, m_result)<< "setTopic did not return success. Expected: OK. Actual: " << NSCppUtility::getResultString(m_result);
826
827     shared_ptr< NSTopicsList > topicList;
828     topicList = m_pNSConsumer->getConsumerTopicList();
829     ASSERT_NE(nullptr,topicList)<< "Consumer topic list was not found";
830 }
831 #endif