Ble on-boarding Junit test cases
authorHemant Mahsky <h.mahsky@samsung.com>
Fri, 18 Sep 2015 12:29:32 +0000 (17:59 +0530)
committerMadan Lanka <lanka.madan@samsung.com>
Fri, 18 Sep 2015 22:19:34 +0000 (22:19 +0000)
Change-Id: I7eafc6535c55a9588eedc6aa94a2de28fb10b843
Signed-off-by: Hemant Mahsky <h.mahsky@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/2711
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/easy-setup/sdk/mediator/android/EasySetupCore/src/androidTest/java/org/iotivity/service/easysetup/core/EasySetupServiceTest.java
service/easy-setup/sdk/mediator/android/EasySetupCore/src/androidTest/java/org/iotivity/service/easysetup/core/EnrolleeDeviceFactoryTest.java

index 6caae74..fd9f645 100644 (file)
@@ -24,22 +24,19 @@ import android.test.AndroidTestCase;
 import android.test.mock.MockApplication;\r
 import android.util.Log;\r
 \r
+import org.iotivity.service.easysetup.impl.BLEOnBoardingConfig;\r
+import org.iotivity.service.easysetup.impl.EnrolleeDeviceBLEOnBoarding;\r
 import org.iotivity.service.easysetup.impl.EnrolleeDeviceFactory;\r
 import org.iotivity.service.easysetup.impl.EnrolleeDeviceWiFiOnboarding;\r
 import org.iotivity.service.easysetup.impl.WiFiOnBoardingConfig;\r
 import org.iotivity.service.easysetup.impl.WiFiProvConfig;\r
 \r
 import java.io.IOException;\r
-import java.util.concurrent.CountDownLatch;\r
-import java.util.concurrent.TimeUnit;\r
 \r
 public class EasySetupServiceTest extends AndroidTestCase {\r
 \r
 \r
-    public void testFunction() {\r
-\r
-        // final CountDownLatch countDownLatch = new CountDownLatch(1);\r
-\r
+    public void testStartSetupWithWiFiOnboarding() {\r
 \r
         EasySetupService mService;\r
         EnrolleeDevice mDevice;\r
@@ -127,6 +124,11 @@ public class EasySetupServiceTest extends AndroidTestCase {
 \r
             Log.i("EasySetupTest", "Lock is released");\r
 \r
+            if(! mDevice.isSetupSuccessful()) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
             IpOnBoardingConnection conn = (IpOnBoardingConnection) mDevice.getConnection();\r
             if (conn == null) {\r
                 assertTrue(false);\r
@@ -158,4 +160,145 @@ public class EasySetupServiceTest extends AndroidTestCase {
 \r
     }\r
 \r
+    public void testStartSetupWithBleOnboarding() {\r
+\r
+        final String UUID = "ade3d529-c784-4f63-a987-eb69f70ee816";\r
+\r
+        EasySetupService mService;\r
+        EnrolleeDevice mDevice;\r
+        EnrolleeDeviceFactory mFactory;\r
+\r
+        final Object lock = new Object();\r
+\r
+\r
+        /* Create Easy Setup service */\r
+        mService = EasySetupService.getInstance(getContext(), new EasySetupStatus() {\r
+            @Override\r
+            public void onFinished(EnrolleeDevice enrolledevice) {\r
+\r
+                //countDownLatch.countDown();\r
+                Utility.toNotify(lock);\r
+\r
+                if (enrolledevice.isSetupSuccessful()) {\r
+\r
+                    if (enrolledevice.mOnBoardingConfig.getConnType() == WiFiOnBoardingConfig.ConnType.BLE) {\r
+                        BleConnection conn = (BleConnection) enrolledevice.getConnection();\r
+                        String mac = conn.getMacaddress();\r
+                        if (mac == null || mac.isEmpty()) {\r
+                            assertTrue(false);\r
+                            return;\r
+                        }\r
+\r
+                        String uuid = conn.getmServiceUUID();\r
+                        if (uuid == null || uuid.isEmpty()) {\r
+                            assertTrue(false);\r
+                            return;\r
+                        }\r
+\r
+                        //  Conform that device are same\r
+                        if (!uuid.equals(UUID)) {\r
+                            assertTrue(false);\r
+                            return;\r
+                        }\r
+\r
+                        // Device configured successfully\r
+                        assertTrue(true);\r
+                    }\r
+\r
+                } else {\r
+                    assertTrue(false);\r
+                }\r
+            }\r
+\r
+            @Override\r
+            public void onProgress(EnrolleeState state) {\r
+                // TODO\r
+            }\r
+        });\r
+\r
+\r
+        /* Create On boarding configuration */\r
+\r
+        BLEOnBoardingConfig bleOnBoardingConfig = new BLEOnBoardingConfig();\r
+        bleOnBoardingConfig.setUuid("ade3d529-c784-4f63-a987-eb69f70ee816");\r
+\r
+        /* Create provisioning configuration */\r
+        WiFiProvConfig mWiFiProvConfig = new WiFiProvConfig("hub2.4G", "11112222");\r
+\r
+        /* Create enrolling device factory instance */\r
+        mFactory = EnrolleeDeviceFactory.newInstance(getContext());\r
+\r
+        /* Check if the factory created successfully */\r
+        assertTrue(mFactory != null);\r
+\r
+        /* Create enrolling device */\r
+        mDevice = mFactory.newEnrolleeDevice(bleOnBoardingConfig, mWiFiProvConfig);\r
+\r
+        /* Check if the the device is created successfully*/\r
+        assertTrue(mDevice != null);\r
+\r
+        /* Check if the the correct device is created as per the given configuration*/\r
+\r
+        /* Check if the the correct device is created as per the given configuration*/\r
+        assertTrue((mDevice instanceof EnrolleeDeviceBLEOnBoarding));\r
+\r
+\r
+        try {\r
+            mService.startSetup(mDevice);\r
+            // If no exception is thrown means setup started successfully.\r
+            assertTrue(true);\r
+\r
+        } catch (IOException e) {\r
+            assertTrue(false);\r
+        }\r
+\r
+        try {\r
+\r
+            Utility.toWait(lock);\r
+\r
+            Log.i("EasySetupTest", "Lock is released");\r
+\r
+            if(! mDevice.isSetupSuccessful()) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
+\r
+            BleConnection conn = (BleConnection) mDevice.getConnection();\r
+            if (conn == null) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
+            String mac = conn.getMacaddress();\r
+            if (mac == null || mac.isEmpty()) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
+            String uuid = conn.getmServiceUUID();\r
+            if (uuid == null || uuid.isEmpty()) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
+            if (!uuid.equals(UUID)) {\r
+                assertTrue(false);\r
+                return;\r
+            }\r
+\r
+            Log.i("EasySetupTest", "MAC " + mac);\r
+            Log.i("EasySetupTest", "UUID " + uuid);\r
+\r
+            // Device configured successfully\r
+            assertTrue(true);\r
+\r
+        } catch (Exception e) {\r
+            e.printStackTrace();\r
+            assertTrue(false);\r
+        }\r
+\r
+    }\r
+\r
+\r
 }
\ No newline at end of file
index f8e0b0c..f8f826a 100644 (file)
@@ -25,6 +25,8 @@ package org.iotivity.service.easysetup.core;
 import android.net.wifi.WifiConfiguration;\r
 import android.test.AndroidTestCase;\r
 \r
+import org.iotivity.service.easysetup.impl.BLEOnBoardingConfig;\r
+import org.iotivity.service.easysetup.impl.EnrolleeDeviceBLEOnBoarding;\r
 import org.iotivity.service.easysetup.impl.EnrolleeDeviceFactory;\r
 import org.iotivity.service.easysetup.impl.EnrolleeDeviceWiFiOnboarding;\r
 import org.iotivity.service.easysetup.impl.WiFiOnBoardingConfig;\r
@@ -49,7 +51,7 @@ public class EnrolleeDeviceFactoryTest extends AndroidTestCase {
     }\r
 \r
 \r
-    public void testNewEnrolleeDeviceWiFiOnboarding() {\r
+    public void testNewEnrolleeDevice_with_WiFiOnboarding() {\r
 \r
         /* Create On boarding configuration */\r
         WiFiOnBoardingConfig mWiFiOnBoardingConfig = new WiFiOnBoardingConfig();\r
@@ -72,5 +74,27 @@ public class EnrolleeDeviceFactoryTest extends AndroidTestCase {
 \r
     }\r
 \r
+    public void testNewEnrolleeDevice_with_BleOnboarding() {\r
+\r
+        /* Create On boarding configuration */\r
+\r
+        BLEOnBoardingConfig bleOnBoardingConfig = new BLEOnBoardingConfig();\r
+        bleOnBoardingConfig.setUuid("ade3d529-c784-4f63-a987-eb69f70ee816");\r
+\r
+        /* Create provisioning configuration */\r
+        WiFiProvConfig mWiFiProvConfig = new WiFiProvConfig("hub2.4G", "11112222");\r
+\r
+        /* Create enrolling device */\r
+        EnrolleeDevice device = mFactory.newEnrolleeDevice(bleOnBoardingConfig, mWiFiProvConfig);\r
+\r
+        /* Check if the the device is created */\r
+        assertTrue(device != null);\r
+\r
+        /* Check if the the correct device is created as per the given configuration*/\r
+        assertTrue((device instanceof EnrolleeDeviceBLEOnBoarding));\r
+\r
+    }\r
+\r
+\r
 \r
 }\r