package io.nlopez.smartlocation.location.providers;
import android.content.Context;
import android.location.Location;
import io.nlopez.smartlocation.OnLocationUpdatedListener;
import io.nlopez.smartlocation.location.ServiceLocationProvider;
import io.nlopez.smartlocation.location.config.LocationParams;
import io.nlopez.smartlocation.utils.Logger;
import io.nlopez.smartlocation.utils.ServiceConnectionListener;
/**
* Test double for a {@link ServiceLocationProvider}.
*
* @author abkaplan07
*/
public class TestServiceProvider implements ServiceLocationProvider {
private ServiceConnectionListener listener;
private int initCount;
private int startCount;
private int stopCount;
private int lastLocCount;
@Override
public ServiceConnectionListener getServiceListener() {
return listener;
}
@Override
public void setServiceListener(ServiceConnectionListener listener) {
this.listener = listener;
}
@Override
public void init(Context context, Logger logger) {
initCount++;
}
@Override
public void start(OnLocationUpdatedListener listener, LocationParams params, boolean
singleUpdate) {
startCount++;
}
@Override
public void stop() {
stopCount++;
}
@Override
public Location getLastLocation() {
lastLocCount++;
return null;
}
public int getInitCount() {
return initCount;
}
public int getStartCount() {
return startCount;
}
public int getStopCount() {
return stopCount;
}
public int getLastLocCount() {
return lastLocCount;
}
/**
* Simulate a service connection failure, and call
* {@link ServiceConnectionListener#onConnectionFailed()}
*/
public void simulateFailure() {
if (listener != null) {
listener.onConnectionFailed();
}
}
}