package com.felkertech.cumulustv;
import android.content.Context;
import com.felkertech.cumulustv.model.ChannelDatabase;
import com.felkertech.settingsmanager.SettingsManager;
import org.json.JSONException;
import org.json.JSONObject;
/**
* Provides a test infrastructure for a {@link ChannelDatabase}
* @author Nick
*/
public class MockChannelDatabase extends ChannelDatabase {
public static final String KEY = MockChannelDatabase.class.getCanonicalName();
private static MockChannelDatabase mMockChannelDatabase;
protected JSONObject mJsonObject;
public static MockChannelDatabase getMockedInstance(Context context) throws JSONException {
if (mMockChannelDatabase == null) {
mMockChannelDatabase = new MockChannelDatabase(context);
mMockChannelDatabase.readJsonListings();
}
return mMockChannelDatabase;
}
public static void reset() {
mMockChannelDatabase = null;
}
protected MockChannelDatabase(final Context context) throws JSONException {
super(context);
SettingsManager settingsManager = new SettingsManager(context);
String jsonString = settingsManager.getString(KEY, getDefaultJsonString());
if (jsonString.isEmpty()) {
jsonString = getDefaultJsonString();
}
mJsonObject = new JSONObject(jsonString);
}
public void readMockJsonListings() throws JSONException {
mMockChannelDatabase.readJsonListings();
}
@Override
public void save() {
mJsonChannelsList = null;
}
}