Merge all changes of easy setup in master branch to 1.2-rel branch
[platform/upstream/iotivity.git] / service / easy-setup / enrollee / unittests / ESEnrolleeTest.cpp
index 6232bce..6ebe826 100755 (executable)
@@ -88,6 +88,26 @@ public:
         std::cout << __func__ << std::endl;
     }
 
+    static void onGetWifiRsrc(const OCRepresentation& )
+    {
+        std::cout << __func__ << std::endl;
+    }
+
+    static void onGetCloudRsrc(const OCRepresentation& )
+    {
+        std::cout << __func__ << std::endl;
+    }
+
+    static void onGetDeviceConf(const OCRepresentation& )
+    {
+        std::cout << __func__ << std::endl;
+    }
+
+    static void onPutRequest(const OCRepresentation& )
+    {
+        std::cout << __func__ << std::endl;
+    }
+
     static void deviceProvisioningStatusCallback(std::shared_ptr< DevicePropProvisioningStatus >)
     {
         std::cout << __func__ << std::endl;
@@ -126,15 +146,30 @@ public:
         return ESInitEnrollee(false, resourcemMask, callbacks);
     }
 
+    ESResult startEnrolleeWithInvalidRsrcMask()
+    {
+        ESProvisioningCallbacks callbacks;
+        callbacks.WiFiProvCb = &EasysetupEnrolleeTest::WiFiProvCbInApp;
+        callbacks.DevConfProvCb = &EasysetupEnrolleeTest::DevConfProvCbInApp;
+        callbacks.CloudDataProvCb = &EasysetupEnrolleeTest::CloudDataCbInApp;
+
+        return ESInitEnrollee(false, (ESResourceMask)0, callbacks);
+    }
+
     ESResult setDeviceProperty()
     {
         ESDeviceProperty deviceProperty = {
-            {{WIFI_11G, WiFi_EOF}, WIFI_5G}, {"Test Device"}
+            {{WIFI_11G, WiFi_EOF}, WIFI_5G}, {"Test Device", "Test Model Number"}
         };
 
         return ESSetDeviceProperty(&deviceProperty);
     }
 
+    ESResult setCallabckForUserDataNULL()
+    {
+        return ESSetCallbackForUserdata(NULL, NULL);
+    }
+
 protected:
 
     void SetUp()
@@ -167,6 +202,13 @@ TEST_F(EasysetupEnrolleeTest, ESInitEnrolleeSuccess)
     ESTerminateEnrollee();
 }
 
+TEST_F(EasysetupEnrolleeTest, ESInitEnrolleeFailedInvalidRsrcMask)
+{
+    ESResult ret = startEnrolleeWithInvalidRsrcMask();
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
 TEST_F(EasysetupEnrolleeTest, ESInitEnrolleeFailedByWiFiCbIsNull)
 {
     ESResourceMask resourcemMask = (ESResourceMask)(ES_WIFI_RESOURCE |
@@ -380,7 +422,6 @@ TEST_F(EasysetupEnrolleeTest, CloudServerProperiesProvisionedWithSuccess)
     mocks.OnCallFunc(cloudProvisioningStatusCallback).Do(
         [& cntForReceivedCallbackWithSuccess](std::shared_ptr< CloudPropProvisioningStatus > status)
         {
-            // Will called twice
             if(status->getESResult() == ES_OK)
             {
                cntForReceivedCallbackWithSuccess++;
@@ -405,9 +446,98 @@ TEST_F(EasysetupEnrolleeTest, CloudServerProperiesProvisionedWithSuccess)
     std::unique_lock< std::mutex > lock{ mutexForCondition };
     responseCon.wait_for(lock, g_waitForResponse);
 
-    EXPECT_EQ(cntForReceivedCallbackWithSuccess, 3);
+    EXPECT_EQ(cntForReceivedCallbackWithSuccess, 2);
+
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, GetWifiRsrcTest)
+{
+    bool isRepFlag = false;
+    mocks.ExpectCallFunc(onGetWifiRsrc).Do(
+        [& isRepFlag](const OCRepresentation& /*rep*/)
+        {
+
+            isRepFlag = true;
+        });
+
+    ESResult ret = startEnrollee();
+    g_mediatorSimul.getWifiRsrc(onGetWifiRsrc);
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, g_waitForResponse);
+
+    EXPECT_EQ(ret, ES_OK);
 
     ESTerminateEnrollee();
 }
 
+TEST_F(EasysetupEnrolleeTest, GetCloudRsrcTest)
+{
+    bool isRepFlag = false;
+    mocks.ExpectCallFunc(onGetCloudRsrc).Do(
+        [& isRepFlag](const OCRepresentation& /*rep*/)
+        {
+            isRepFlag = true;
+        });
+
+    ESResult ret = startEnrollee();
+    g_mediatorSimul.getCloudRsrc(onGetCloudRsrc);
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, g_waitForResponse);
+
+    EXPECT_EQ(ret, ES_OK);
+
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, GetDevConfTest)
+{
+    bool isRepFlag = false;
+    mocks.ExpectCallFunc(onGetDeviceConf).Do(
+        [& isRepFlag](const OCRepresentation& /*rep*/)
+        {
+            isRepFlag = true;
+        });
+
+    ESResult ret = startEnrollee();
+    ret = setDeviceProperty();
+
+    g_mediatorSimul.getDevConfiguration(onGetDeviceConf);
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, g_waitForResponse);
 
+    EXPECT_EQ(ret, ES_OK);
+
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, PutRequestTest)
+{
+    bool isRepFlag = false;
+    mocks.ExpectCallFunc(onPutRequest).Do(
+        [& isRepFlag](const OCRepresentation& /*rep*/)
+        {
+            isRepFlag = true;
+        });
+
+    ESResult ret = startEnrollee();
+
+    g_mediatorSimul.putProvRsrc(onPutRequest);
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, g_waitForResponse);
+
+    EXPECT_EQ(ret, ES_OK);
+
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSetCallabckForUserDataFailed)
+{
+    ESResult ret = setCallabckForUserDataNULL();
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}