diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-02-03 14:40:00 -0500 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-02-03 14:40:00 -0500 |
commit | afaa9c2c639bd1a73ea0b158439909f7289a6c2f (patch) | |
tree | d898e7228487432969873ed4a7dc0c24c8d9941d | |
parent | f949134b16d72f0b5f56ce6bbd1def2920f1cb59 (diff) | |
download | sdl_android-afaa9c2c639bd1a73ea0b158439909f7289a6c2f.tar.gz |
Adding start of multiplexing BT transport tests
-rw-r--r-- | sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexBluetoothTransportTest.java | 72 |
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 |