TRACKING APP: fixes

This commit is contained in:
Lukas Zielinski committed 2014-12-09 12:00:19 +01:00
1 parent 34508b883e
commit 1a232aad98
12 files changed
+34 -72

No files matched your search

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sap.sailing.android.tracking.app.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="14" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.sap.sailing.android.tracking.app" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
@@ -3,7 +3,6 @@ package com.sap.sailing.android.tracking.app.test;
import java.util.ArrayList;
import java.util.Date;
import org.json.JSONObject;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
@@ -15,7 +14,7 @@ import android.test.ServiceTestCase;
import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.services.TrackingService;
import com.sap.sailing.android.tracking.app.services.TrackingService.GPSQuality;
import com.sap.sailing.android.tracking.app.ui.activities.TrackingActivity;
import com.sap.sailing.android.tracking.app.services.TrackingService.GPSQualityListener;
import com.sap.sailing.android.tracking.app.valueobjects.GpsFix;
public class TrackingServiceTest extends ServiceTestCase<TrackingService> {
@@ -23,8 +22,6 @@ public class TrackingServiceTest extends ServiceTestCase<TrackingService> {
static final String TAG = TrackingServiceTest.class.getName();
final String eventId = "test123";
long eventRowId;
// static final String GPS_MOCK_PROVIDER_NAME = "TestProvider";
public TrackingServiceTest() {
super(TrackingService.class);
}
@@ -32,16 +29,15 @@ public class TrackingServiceTest extends ServiceTestCase<TrackingService> {
@Override
protected void setUp() throws Exception {
super.setUp();
System.setProperty("dexmaker.dexcache", getContext().getCacheDir().toString());
DatabaseTestHelper.deleteAllGpsFixesFromDB(getContext());
DatabaseTestHelper.deleteAllEventsFromDB(getContext());
eventRowId = DatabaseTestHelper.createNewEventInDBAndReturnItsId(getContext(), "test123", eventId);
// createGpsTestProvider();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
// removeGpsTestProvider();
}
private void startService()
@@ -108,26 +104,26 @@ public class TrackingServiceTest extends ServiceTestCase<TrackingService> {
public void testReportsGpsQualityGreat() {
TrackingActivity listener = Mockito.mock(TrackingActivity.class);
MockGpsListener listener = Mockito.spy(new MockGpsListener());
ArgumentCaptor<GPSQuality> gpsQualityCaptor = ArgumentCaptor.forClass(GPSQuality.class);
ArgumentCaptor<Integer> accuracyCaptor = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<Float> accuracyCaptor = ArgumentCaptor.forClass(Float.class);
ArgumentCaptor<Float> bearingCaptor = ArgumentCaptor.forClass(Float.class);
ArgumentCaptor<Float> speedCaptor = ArgumentCaptor.forClass(Float.class);
startService();
TrackingService service = getService();
service.registerGPSQualityListener(listener);
getService().onLocationChanged(getTestLocation(2, 12.5f, 123));
Mockito.verify(listener, Mockito.times(1))
.gpsQualityAndAccurracyUpdated(gpsQualityCaptor.capture(),
accuracyCaptor.capture(), bearingCaptor.capture(),
speedCaptor.capture());
getService().onLocationChanged(getTestLocation(2, 12.5f, 123));
assertEquals(GPSQuality.great, gpsQualityCaptor.getValue());
assertEquals(2, accuracyCaptor.getValue().floatValue());
assertEquals(123, bearingCaptor.getValue().floatValue());
assertEquals(2f, accuracyCaptor.getValue().floatValue());
assertEquals(123f, bearingCaptor.getValue().floatValue());
assertEquals(12.5f, speedCaptor.getValue().floatValue());
shutdownService();
@@ -145,4 +141,12 @@ public class TrackingServiceTest extends ServiceTestCase<TrackingService> {
location.setBearing(bearing);
return location;
}
public class MockGpsListener implements GPSQualityListener
{
@Override
public void gpsQualityAndAccurracyUpdated(GPSQuality quality,
float gpsAccurracy, float gpsBearing, float gpsSpeed) {
}
}
}
@@ -15,11 +15,9 @@ import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.services.TrackingService;
import com.sap.sailing.android.tracking.app.services.TrackingService.GPSQualityListener;
import com.sap.sailing.android.tracking.app.services.TransmittingService;
import com.sap.sailing.android.tracking.app.ui.activities.TrackingActivity;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
import com.sap.sailing.android.tracking.app.utils.VolleyHelper;
import com.sap.sailing.android.tracking.app.test.extensions.DatabaseHelperTestable;
import com.sap.sailing.android.tracking.app.test.extensions.VolleyHelperTestable;
import com.sap.sailing.android.tracking.app.valueobjects.GpsFix;
public class TransmittingServiceTest extends ServiceTestCase<TransmittingService> {
@@ -27,8 +25,8 @@ public class TransmittingServiceTest extends ServiceTestCase<TransmittingService
static final String TAG = TransmittingServiceTest.class.getName();
final String eventId = "test123";
private VolleyHelper volleyHelperSpy;
private DatabaseHelper databaseHelperMock;
private VolleyHelperTestable volleyHelperSpy;
private DatabaseHelperTestable databaseHelperMock;
public TransmittingServiceTest() {
super(TransmittingService.class);
@@ -37,22 +35,21 @@ public class TransmittingServiceTest extends ServiceTestCase<TransmittingService
@Override
protected void setUp() throws Exception {
super.setUp();
System.setProperty( "dexmaker.dexcache", getContext().getCacheDir().getPath() );
System.setProperty("dexmaker.dexcache", getContext().getCacheDir().toString());
DatabaseTestHelper.deleteAllEventsFromDB(getContext());
DatabaseTestHelper.deleteAllGpsFixesFromDB(getContext());
if (volleyHelperSpy == null)
{
VolleyHelper.injectInstance(null);
volleyHelperSpy = Mockito.spy(VolleyHelper.getInstance(getContext()));
VolleyHelper.injectInstance(volleyHelperSpy);
VolleyHelperTestable.injectInstance(null);
volleyHelperSpy = Mockito.spy(new VolleyHelperTestable(getContext()));
VolleyHelperTestable.injectInstance(volleyHelperSpy);
}
if (databaseHelperMock == null)
{
DatabaseHelper.injectInstance(null);
databaseHelperMock = Mockito.mock(DatabaseHelper.class);
DatabaseHelper.injectInstance(databaseHelperMock);
databaseHelperMock = Mockito.mock(DatabaseHelperTestable.class);
DatabaseHelperTestable.injectInstance(databaseHelperMock);
}
}
@@ -544,8 +544,8 @@ public class TransmittingService extends Service {
public enum APIConnectivity {
notReachable (0),
reachableTransmissionSuccess (1),
reachableTransmissionError(2),
noAttempt(4);
reachableTransmissionError (2),
noAttempt (4);
private final int apiConnectivity;
@@ -28,10 +28,10 @@ public class DatabaseHelper {
private final static String TAG = DatabaseHelper.class.getName();
private static DatabaseHelper mInstance;
private Context mContext;
protected static DatabaseHelper mInstance;
protected Context mContext;
private DatabaseHelper(Context context) {
protected DatabaseHelper(Context context) {
mContext = context;
}
@@ -266,15 +266,4 @@ public class DatabaseHelper {
ExLog.i(mContext, TAG, "Checkout, number of leaderbards deleted: " + d3);
}
}
/**
* for testing.
*
* @param instance
*/
public static void injectInstance(DatabaseHelper instance) {
mInstance = instance;
}
}
@@ -16,12 +16,12 @@ public class VolleyHelper extends Application {
private static final String TAG = VolleyHelper.class.getName();
private Context mContext;
protected Context mContext;
private RequestQueue mRequestQueue;
private static VolleyHelper mInstance;
protected static VolleyHelper mInstance;
private VolleyHelper(Context context) {
protected VolleyHelper(Context context) {
mContext = context;
}
@@ -61,13 +61,4 @@ public class VolleyHelper extends Application {
mRequestQueue.cancelAll((tag == null) ? TAG : tag);
}
}
/**
* for testing.
* @param instance
*/
public static void injectInstance(VolleyHelper instance)
{
mInstance = instance;
}
}