package com.nutomic.syncthingandroid.test;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Context that saves all received intents, which can be retrieved later by test classes.
*/
public class MockContext extends ContextWrapper {
private final ArrayList<Intent> mReceivedIntents = new ArrayList<>();
private final ArrayList<Intent> mStopServiceIntents = new ArrayList<>();
/**
* Use the actual context for calls that aren't easily mocked. May be null if those
* calls aren't needed.
*/
public MockContext(Context context) {
super(context);
}
@Override
public String getPackageName() {
return null;
}
@Override
public ComponentName startService(Intent intent) {
mReceivedIntents.add(intent);
return null;
}
@Override
public boolean stopService(Intent intent) {
mStopServiceIntents.add(intent);
return true;
}
public List<Intent> getReceivedIntents() {
return mReceivedIntents;
}
public List<Intent> getStopServiceIntents() {
return mStopServiceIntents;
}
public void clearReceivedIntents() {
mReceivedIntents.clear();
}
private BroadcastReceiver mLastUnregistered;
@Override
public void unregisterReceiver(BroadcastReceiver receiver) {
mLastUnregistered = receiver;
}
public BroadcastReceiver getLastUnregistered() {
return mLastUnregistered;
}
@Override
public File getFilesDir() {
File testFilesDir = new File(super.getFilesDir(), "test/");
testFilesDir.mkdir();
return testFilesDir;
}
}