diff options
| -rw-r--r-- | tests/src/cgeo/geocaching/sensors/SensorsTest.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/sensors/SensorsTest.java b/tests/src/cgeo/geocaching/sensors/SensorsTest.java index b54cd13..6cedf50 100644 --- a/tests/src/cgeo/geocaching/sensors/SensorsTest.java +++ b/tests/src/cgeo/geocaching/sensors/SensorsTest.java @@ -5,10 +5,16 @@ import static org.assertj.core.api.Assertions.assertThat; import cgeo.geocaching.MainActivity; import cgeo.geocaching.utils.AngleUtils; +import rx.Observable; + import android.test.ActivityInstrumentationTestCase2; +import java.util.concurrent.TimeUnit; + public class SensorsTest extends ActivityInstrumentationTestCase2<MainActivity> { + private Sensors sensors; + public SensorsTest() { super(MainActivity.class); } @@ -16,6 +22,7 @@ public class SensorsTest extends ActivityInstrumentationTestCase2<MainActivity> @Override protected void setUp() throws Exception { super.setUp(); + sensors = Sensors.getInstance(); } public static void testGetDirectionNow() { @@ -23,4 +30,21 @@ public class SensorsTest extends ActivityInstrumentationTestCase2<MainActivity> assertThat(angle == 1.0f || angle == 91.0f || angle == 181.0f || angle == 271.0f).isTrue(); } + private static <T> void testDataAvailability(final Observable<T> observable) { + try { + observable.timeout(200, TimeUnit.MILLISECONDS).first().toBlocking().single(); + } catch (final Exception ignored) { + fail("timeout while waiting for sensor data"); + } + } + + public void testDirectionObservable() { + testDataAvailability(sensors.directionObservable()); + } + + public void testGeodataObservable() { + testDataAvailability(sensors.geoDataObservable(false)); + testDataAvailability(sensors.geoDataObservable(true)); + } + } |
