ShadowSensorManagerTest.java revision 72cf654d6d3a933e426506345ded34cf39a669a2
1cfb3d242306311ce27ec51bf511764377c173a7cKiran Ryali + Christian Williamspackage org.robolectric.shadows; 25aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave 35aab2036d99aa0bdced8c12a41a2b67a0bc8d676Daveimport android.content.Context; 45aab2036d99aa0bdced8c12a41a2b67a0bc8d676Daveimport android.hardware.Sensor; 55aab2036d99aa0bdced8c12a41a2b67a0bc8d676Daveimport android.hardware.SensorEvent; 65aab2036d99aa0bdced8c12a41a2b67a0bc8d676Daveimport android.hardware.SensorEventListener; 75aab2036d99aa0bdced8c12a41a2b67a0bc8d676Daveimport android.hardware.SensorManager; 85117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.After; 95117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.Before; 105117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.Test; 115117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport org.junit.runner.RunWith; 123b8b7229bea6a6639d97b3d6ba4e971e37341e9fRyan Sporeimport org.robolectric.RuntimeEnvironment; 138efa8a16877d62ef6ba4ddaaaf85055495d73f9fChristian Williamsimport org.robolectric.TestRunners; 141f7901d153aed7f8f66c487a4f8fa2001ed1440eErich Douglassimport org.robolectric.internal.Shadow; 155117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard 16e20bf1d6276aedaa0f48bd5e10d6690d13e9d4e1Ryan Sporeimport static org.assertj.core.api.Assertions.assertThat; 17006481c035ec4736b0b7a88e5dde9efc12591cd2Erich Douglass and Ryan Sporeimport static org.robolectric.Shadows.shadowOf; 185aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave 1956215a065f0b61b67bb7bb21f21b305da9a66c90Christian Williams & Dimitris Couchell@RunWith(TestRunners.WithDefaults.class) 2072cf654d6d3a933e426506345ded34cf39a669a2Erich Douglasspublic class ShadowSensorManagerTest { 215aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave 22f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams private SensorManager sensorManager; 23f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams private ShadowSensorManager shadow; 24f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 25f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Before 26f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void setup() { 273b8b7229bea6a6639d97b3d6ba4e971e37341e9fRyan Spore sensorManager = (SensorManager) RuntimeEnvironment.application.getSystemService(Context.SENSOR_SERVICE); 28f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams shadow = shadowOf(sensorManager); 29f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 30f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 31f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @After 32f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void tearDown() { 33f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams sensorManager = null; 34f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams shadow = null; 35f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 36f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 37f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Test 38f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void shouldReturnHasListenerAfterRegisteringListener() { 39f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams SensorEventListener listener = registerListener(); 40f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 41f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams assertThat(shadow.hasListener(listener)).isTrue(); 42f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 43f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 44f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams private SensorEventListener registerListener() { 45f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams SensorEventListener listener = new TestSensorEventListener(); 46f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams Sensor sensor = sensorManager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER); 47f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL); 48f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 49f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams return listener; 50f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 51f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 52f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Test 53f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void shouldReturnHasNoListenerAfterUnregisterListener() { 54f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams SensorEventListener listener = registerListener(); 55f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams sensorManager.unregisterListener(listener, sensorManager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER)); 56f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 57f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams assertThat(shadow.hasListener(listener)).isFalse(); 587052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo } 597052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo 607052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo @Test 617052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo public void shouldReturnHasNoListenerAfterUnregisterListenerWithoutSpecificSensor() { 627052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo SensorEventListener listener = registerListener(); 637052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo sensorManager.unregisterListener(listener); 647052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo 657052552ebed64b496de8e79f29ab587f2d935054nimeacuerdo assertThat(shadow.hasListener(listener)).isFalse(); 66f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 67f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 68f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Test 69f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void shouldReturnHasNoListenerByDefault() { 70f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams SensorEventListener listener = new TestSensorEventListener(); 71f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 72f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams assertThat(shadow.hasListener(listener)).isFalse(); 73f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 74f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 75f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Test 76f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void shouldCreateSensorEvent() { 77f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams assertThat(shadow.createSensorEvent() instanceof SensorEvent).isTrue(); 78f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 79f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 8029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams @Test 8129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams public void getSensor_shouldBeConfigurable() { 821f7901d153aed7f8f66c487a4f8fa2001ed1440eErich Douglass Sensor sensor = Shadow.newInstanceOf(Sensor.class); 8329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams shadowOf(sensorManager).addSensor(Sensor.TYPE_ACCELEROMETER, sensor); 8429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams assertThat(sensor).isSameAs(sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)); 8529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams } 86f8f6b40110c63bca5df45d01b914c21269638164Nathan Shayefar and Phil Goodwin 8729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams @Test 8829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams public void shouldReturnASensorList() throws Exception { 8929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams assertThat(sensorManager.getSensorList(0)).isNotNull(); 9029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams } 91e3cd0f53a651b261d868ad95d778dde07de2fc67Ray Ryan 92f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams private class TestSensorEventListener implements SensorEventListener { 93f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams 94f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Override 95f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void onAccuracyChanged(Sensor sensor, int accuracy) { 96f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 975aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave 98f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams @Override 99f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams public void onSensorChanged(SensorEvent event) { 100f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 1015aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave 102f3a67bea2e9e481c7344b416ec0e90ceb27ec005Christian Williams } 1035aab2036d99aa0bdced8c12a41a2b67a0bc8d676Dave} 104