Add Unit Tests for EasySetup APIs.
[platform/upstream/iotivity.git] / service / easy-setup / enrollee / unittests / ESEnrolleeTest.cpp
index b041d1f..0a172bb 100755 (executable)
@@ -29,6 +29,9 @@
 #include "ESMediatorSimulator.h"
 #include "easysetup.h"
 
+extern "C" {
+#include "samsung/sc_easysetup.h"
+}
 using namespace OC;
 
 namespace
@@ -532,3 +535,215 @@ TEST_F(EasysetupEnrolleeTest, ESSetCallabckForUserDataFailed)
     EXPECT_EQ(ret, ES_ERROR);
     ESTerminateEnrollee();
 }
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetSCProperties)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+    SCProperties properties;
+    strncpy(properties.candidateAPInfo[0].ssid, "x_5GHz", MAXLEN_STRING);
+    strncpy(properties.candidateAPInfo[0].passphrase, "12345678",MAXLEN_STRING);
+    properties.candidateAPInfo[0].channel = 149;
+    strncpy(properties.candidateAPInfo[0].bssid, "aa:bb:cc:dd:ee:01", MAXLEN_STRING);
+    strncpy(properties.candidateAPInfo[1].ssid, "5GHz", MAXLEN_STRING);
+    strncpy(properties.candidateAPInfo[1].passphrase, "12345678",MAXLEN_STRING);
+    properties.candidateAPInfo[1].channel = 161;
+    strncpy(properties.candidateAPInfo[1].bssid, "aa:bb:cc:dd:ee:02", MAXLEN_STRING);
+    properties.numCandidateAP=2;
+
+    ret = SetSCProperties(&properties);
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLSCProperties)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCProperties(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetTncInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    SCTncInfo info;
+    strncpy(info.header, "h1", MAXLEN_STRING);
+    strncpy(info.version, "v1",MAXLEN_STRING);
+
+    ret = SetSCTncInfo(&info);
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLTncInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCTncInfo(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetTncStatus)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCTncStatus(1);
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetSCNetConnectionState)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCNetConnectionState(NET_STATE_INIT);
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetRegisterSetDevice)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetRegisterSetDevice("fridge");
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLRegisterSetDevice)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetRegisterSetDevice(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNetworkProvInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetNetworkProvInfo("netInfo");
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLSetNetworkProvInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetNetworkProvInfo(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetSCPnPPin)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCPnPPin("123456");
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLSCPnPPin)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSCPnPPin(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetESVersionInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetESVersionInfo("1.0");
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLESVersionInfo)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetESVersionInfo(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetSSOList)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSSOList("xyz");
+    EXPECT_EQ(ret, ES_OK);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ESSC_SetNULLSSOList)
+{
+    ESResult ret = startEnrollee();
+    EXPECT_EQ(ret, ES_OK);
+
+    ret = SetSSOList(NULL);
+    EXPECT_EQ(ret, ES_ERROR);
+    ESTerminateEnrollee();
+}
+
+TEST_F(EasysetupEnrolleeTest, ReadWriteUserCallback)
+{
+    int cntForReceivedCallbackWithSuccess = 0;
+
+    mocks.OnCallFunc(deviceProvisioningStatusCallback).Do(
+        [& cntForReceivedCallbackWithSuccess](std::shared_ptr< DevicePropProvisioningStatus > status)
+        {
+            if(status->getESResult() == ES_OK)
+               cntForReceivedCallbackWithSuccess++;
+        });
+
+    mocks.OnCallFunc(WiFiConfProvCbInApp).Do(
+        [& cntForReceivedCallbackWithSuccess](ESWiFiConfData *data)
+        {
+            if(!strcmp(data->ssid, "Iotivity_SSID") &&
+                !strcmp(data->pwd, "Iotivity_PWD") &&
+                data->authtype == WPA2_PSK &&
+                data->enctype == TKIP_AES)
+            {
+                cntForReceivedCallbackWithSuccess++;
+            }
+        });
+
+    startEnrollee();
+
+    EXPECT_EQ(ESSetCallbackForUserdata(&ReadUserdataCb, &WriteUserdataCb), ES_OK);
+
+    g_mediatorSimul.provisionDeviceProperties(deviceProvisioningStatusCallback);
+
+    std::unique_lock< std::mutex > lock{ mutexForCondition };
+    responseCon.wait_for(lock, g_waitForResponse);
+
+    EXPECT_EQ(cntForReceivedCallbackWithSuccess, 2);
+
+    ESTerminateEnrollee();
+}
+