1package com.xtremelabs.robolectric.shadows; 2 3import android.content.Context; 4import android.hardware.Sensor; 5import android.hardware.SensorEvent; 6import android.hardware.SensorEventListener; 7import android.hardware.SensorManager; 8import com.xtremelabs.robolectric.Robolectric; 9import com.xtremelabs.robolectric.WithTestDefaultsRunner; 10import org.junit.After; 11import org.junit.Before; 12import org.junit.Test; 13import org.junit.runner.RunWith; 14 15import static com.xtremelabs.robolectric.Robolectric.shadowOf; 16import static org.junit.Assert.*; 17 18@RunWith(WithTestDefaultsRunner.class) 19public class SensorManagerTest { 20 21 private SensorManager sensorManager; 22 private ShadowSensorManager shadow; 23 24 @Before 25 public void setup() { 26 sensorManager = (SensorManager) Robolectric.application.getSystemService(Context.SENSOR_SERVICE); 27 shadow = shadowOf(sensorManager); 28 } 29 30 @After 31 public void tearDown() { 32 sensorManager = null; 33 shadow = null; 34 } 35 36 @Test 37 public void shouldReturnHasListenerAfterRegisteringListener() { 38 SensorEventListener listener = registerListener(); 39 40 assertTrue(shadow.hasListener(listener)); 41 } 42 43 private SensorEventListener registerListener() { 44 SensorEventListener listener = new TestSensorEventListener(); 45 Sensor sensor = sensorManager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER); 46 sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL); 47 48 return listener; 49 } 50 51 @Test 52 public void shouldReturnHasNoListenerAfterUnregisterListener() { 53 SensorEventListener listener = registerListener(); 54 sensorManager.unregisterListener(listener, sensorManager.getDefaultSensor(SensorManager.SENSOR_ACCELEROMETER)); 55 56 assertFalse(shadow.hasListener(listener)); 57 } 58 59 @Test 60 public void shouldReturnHasNoListenerByDefault() { 61 SensorEventListener listener = new TestSensorEventListener(); 62 63 assertFalse(shadow.hasListener(listener)); 64 } 65 66 @Test 67 public void shouldCreateSensorEvent() { 68 assertTrue(shadow.createSensorEvent() instanceof SensorEvent); 69 } 70 71 private class TestSensorEventListener implements SensorEventListener { 72 73 @Override 74 public void onAccuracyChanged(Sensor sensor, int accuracy) { 75 } 76 77 @Override 78 public void onSensorChanged(SensorEvent event) { 79 } 80 81 } 82} 83