aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/src/cgeo/geocaching/sensors/SensorsTest.java24
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));
+ }
+
}