summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2017-02-03 14:40:00 -0500
committerJoey Grover <joeygrover@gmail.com>2017-02-03 14:40:00 -0500
commitafaa9c2c639bd1a73ea0b158439909f7289a6c2f (patch)
treed898e7228487432969873ed4a7dc0c24c8d9941d
parentf949134b16d72f0b5f56ce6bbd1def2920f1cb59 (diff)
downloadsdl_android-afaa9c2c639bd1a73ea0b158439909f7289a6c2f.tar.gz
Adding start of multiplexing BT transport tests
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java b/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java
new file mode 100644
index 000000000..ae4bae4ce
--- /dev/null
+++ b/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java
@@ -0,0 +1,72 @@
+package com.smartdevicelink.test.transport;
+
+import junit.framework.TestCase;
+import android.os.Handler;
+import android.os.Message;
+
+import com.smartdevicelink.transport.MultiplexBluetoothTransport;
+import com.smartdevicelink.transport.SdlRouterService;
+
+
+
+public class MultiplexBluetoothTransportTest extends TestCase {
+
+ private static final Object REQUEST_LOCK = new Object();
+
+ MultiplexBluetoothTransport bluetooth;
+ boolean didCorrectThing = false, isWaitingForResponse = false;
+
+ //Example handler
+ Handler stateChangeHandler = new Handler(){
+ int stateDesired = MultiplexBluetoothTransport.STATE_LISTEN;
+ @Override
+ public void handleMessage(Message msg) {
+ if(!isWaitingForResponse){
+ return;
+ }
+ switch(msg.what){
+ case SdlRouterService.MESSAGE_STATE_CHANGE:
+ if(msg.arg1 == stateDesired){
+ didCorrectThing = true;
+ break;
+ }
+ default:
+ didCorrectThing = false;
+ }
+ REQUEST_LOCK.notify();
+ }
+
+ };
+
+ public void testStateTransitions() {
+ //TODO test for more than the two states
+ bluetooth = MultiplexBluetoothTransport.getBluetoothSerialServerInstance();
+ assertNull(bluetooth);
+
+ bluetooth = MultiplexBluetoothTransport.getBluetoothSerialServerInstance(stateChangeHandler);
+ assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_NONE);
+
+ bluetooth.start();
+ assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_LISTEN);
+
+ bluetooth.stop();
+ assertEquals(bluetooth.getState(), MultiplexBluetoothTransport.STATE_NONE);
+
+ }
+
+ private void notifyResponseReceived(){
+ REQUEST_LOCK.notify();
+ }
+
+ private void waitForResponse(){
+ synchronized(REQUEST_LOCK){
+ try {
+ REQUEST_LOCK.wait();
+ assertTrue(didCorrectThing);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+} \ No newline at end of file