Update robolectric test cases

pull/73/head
Alex Baker 12 years ago
parent 1725a6715b
commit e4000addf7

@ -96,7 +96,7 @@ abstract public class AbstractDependencyInjector {
/** /**
* Flush dependency injection cache. Useful for unit tests. * Flush dependency injection cache. Useful for unit tests.
*/ */
protected void flushCreated() { protected void clear() {
createdObjects.clear(); createdObjects.clear();
} }

@ -32,7 +32,7 @@ public class TodorooTestCase extends AndroidTestCase {
super.setUp(); super.setUp();
ContextManager.setContext(this.getContext()); ContextManager.setContext(this.getContext());
AstridDependencyInjector.flush(); AstridDependencyInjector.reset();
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
setLocale(Locale.ENGLISH); setLocale(Locale.ENGLISH);
} }

@ -35,7 +35,7 @@ import java.io.IOException;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
public final class GtasksSyncService { public class GtasksSyncService {
private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$ private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$
@Autowired MetadataService metadataService; @Autowired MetadataService metadataService;

@ -115,7 +115,8 @@ public class AstridDependencyInjector extends AbstractDependencyInjector {
/** /**
* Flush dependency injection cache. Useful for unit tests. * Flush dependency injection cache. Useful for unit tests.
*/ */
public synchronized static void flush() { public synchronized static void reset() {
instance.flushCreated(); instance = null;
initialize();
} }
} }

@ -27,12 +27,4 @@ public class RobolectricTestDependencyInjector extends AbstractDependencyInjecto
DependencyInjectionService.getInstance().addInjector(instance); DependencyInjectionService.getInstance().addInjector(instance);
return instance; return instance;
} }
/**
* Remove an installed TestDependencyInjector
*/
public static void deinitialize(RobolectricTestDependencyInjector instance) {
DependencyInjectionService.getInstance().removeInjector(instance);
}
} }

@ -11,31 +11,39 @@ import android.util.DisplayMetrics;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.RobolectricTestDependencyInjector;
import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.AstridDependencyInjector;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.tasks.Broadcaster;
import java.util.Locale; import java.util.Locale;
import static org.mockito.Mockito.mock;
public class TodorooRobolectricTestCase { public class TodorooRobolectricTestCase {
static { private RobolectricTestDependencyInjector testInjector;
AstridDependencyInjector.initialize();
protected <T> T addInjectable(String name, T object) {
testInjector.addInjectable(name, object);
return object;
} }
@Before @Before
public void setUp() throws Exception { public void before() throws Exception {
ContextManager.setContext(getContext()); ContextManager.setContext(getRobolectricContext());
AstridDependencyInjector.flush(); AstridDependencyInjector.reset();
testInjector = RobolectricTestDependencyInjector.initialize("test");
addInjectable("broadcaster", mock(Broadcaster.class));
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
} }
/** /**
* Loop through each locale and call runnable * Loop through each locale and call runnable
*/ */
public void forEachLocale(Runnable r) { public static void forEachLocale(Runnable r) {
Locale[] locales = Locale.getAvailableLocales(); Locale[] locales = Locale.getAvailableLocales();
for(Locale locale : locales) { for(Locale locale : locales) {
setLocale(locale); setLocale(locale);
@ -47,15 +55,15 @@ public class TodorooRobolectricTestCase {
/** /**
* Sets locale * Sets locale
*/ */
private void setLocale(Locale locale) { private static void setLocale(Locale locale) {
Locale.setDefault(locale); Locale.setDefault(locale);
Configuration config = new Configuration(); Configuration config = new Configuration();
config.locale = locale; config.locale = locale;
DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); DisplayMetrics metrics = getRobolectricContext().getResources().getDisplayMetrics();
getContext().getResources().updateConfiguration(config, metrics); getRobolectricContext().getResources().updateConfiguration(config, metrics);
} }
protected Context getContext() { public static Context getRobolectricContext() {
return Robolectric.getShadowApplication().getApplicationContext(); return Robolectric.getShadowApplication().getApplicationContext();
} }
} }

@ -1,31 +0,0 @@
package com.todoroo.andlib.test;
import com.todoroo.andlib.service.RobolectricTestDependencyInjector;
import org.junit.After;
import org.tasks.Broadcaster;
import static org.mockito.Mockito.mock;
abstract public class TodorooRobolectricTestCaseWithInjector extends TodorooRobolectricTestCase {
protected RobolectricTestDependencyInjector testInjector;
protected void addInjectables() {
}
@Override
public void setUp() throws Exception {
testInjector = RobolectricTestDependencyInjector.initialize("test");
testInjector.addInjectable("broadcaster", mock(Broadcaster.class));
addInjectables();
super.setUp();
}
@After
public void after() throws Exception {
RobolectricTestDependencyInjector.deinitialize(testInjector);
}
}

@ -150,7 +150,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase {
*/ */
@Test @Test
public void testFormatStringsMatch() throws Exception { public void testFormatStringsMatch() throws Exception {
final Resources r = getContext().getResources(); final Resources r = getRobolectricContext().getResources();
final int[] strings = getResourceIds(getStringResources()); final int[] strings = getResourceIds(getStringResources());
final FormatStringData[] formatStrings = new FormatStringData[strings.length]; final FormatStringData[] formatStrings = new FormatStringData[strings.length];
@ -199,7 +199,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase {
*/ */
@Test @Test
public void testDateFormats() throws Exception { public void testDateFormats() throws Exception {
final Resources r = getContext().getResources(); final Resources r = getRobolectricContext().getResources();
final StringBuilder failures = new StringBuilder(); final StringBuilder failures = new StringBuilder();
final int[] dateStrings = getDateFormatStrings(); final int[] dateStrings = getDateFormatStrings();
@ -236,7 +236,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase {
*/ */
@Test @Test
public void testArraySizesMatch() throws Exception { public void testArraySizesMatch() throws Exception {
final Resources r = getContext().getResources(); final Resources r = getRobolectricContext().getResources();
final int[] arrays = getResourceIds(getArrayResources()); final int[] arrays = getResourceIds(getArrayResources());
final int[] sizes = new int[arrays.length]; final int[] sizes = new int[arrays.length];
final StringBuilder failures = new StringBuilder(); final StringBuilder failures = new StringBuilder();

@ -5,8 +5,6 @@
*/ */
package com.todoroo.andlib.utility; package com.todoroo.andlib.utility;
import com.todoroo.andlib.test.TodorooRobolectricTestCase;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
@ -18,6 +16,8 @@ import org.tasks.Snippet;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import static com.todoroo.andlib.test.TodorooRobolectricTestCase.forEachLocale;
import static com.todoroo.andlib.test.TodorooRobolectricTestCase.getRobolectricContext;
import static com.todoroo.andlib.utility.DateUtilities.addCalendarMonthsToUnixtime; import static com.todoroo.andlib.utility.DateUtilities.addCalendarMonthsToUnixtime;
import static com.todoroo.andlib.utility.DateUtilities.clearTime; import static com.todoroo.andlib.utility.DateUtilities.clearTime;
import static com.todoroo.andlib.utility.DateUtilities.getDateString; import static com.todoroo.andlib.utility.DateUtilities.getDateString;
@ -35,7 +35,7 @@ import static org.tasks.Freeze.freezeAt;
import static org.tasks.date.DateTimeUtils.newDate; import static org.tasks.date.DateTimeUtils.newDate;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class DateUtilitiesTest extends TodorooRobolectricTestCase { public class DateUtilitiesTest {
private static Locale defaultLocale; private static Locale defaultLocale;
@ -60,13 +60,13 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase {
DateUtilities.is24HourOverride = false; DateUtilities.is24HourOverride = false;
for (int i = 0; i < 24; i++) { for (int i = 0; i < 24; i++) {
d.setHours(i); d.setHours(i);
DateUtilities.getTimeString(getContext(), d); DateUtilities.getTimeString(getRobolectricContext(), d);
} }
DateUtilities.is24HourOverride = true; DateUtilities.is24HourOverride = true;
for (int i = 0; i < 24; i++) { for (int i = 0; i < 24; i++) {
d.setHours(i); d.setHours(i);
DateUtilities.getTimeString(getContext(), d); DateUtilities.getTimeString(getRobolectricContext(), d);
} }
} }
}); });

@ -242,17 +242,6 @@ public class TaskTest {
}}); }});
} }
@Test
public void testDefaults() {
AstridPreferences.setPreferenceDefaults();
ContentValues defaults = new Task().getDefaultValues();
assertTrue(defaults.containsKey(Task.TITLE.name));
assertTrue(defaults.containsKey(Task.DUE_DATE.name));
assertTrue(defaults.containsKey(Task.HIDE_UNTIL.name));
assertTrue(defaults.containsKey(Task.COMPLETION_DATE.name));
assertTrue(defaults.containsKey(Task.IMPORTANCE.name));
}
@Test @Test
public void testSanity() { public void testSanity() {
assertTrue(Task.IMPORTANCE_DO_OR_DIE < Task.IMPORTANCE_MUST_DO); assertTrue(Task.IMPORTANCE_DO_OR_DIE < Task.IMPORTANCE_MUST_DO);

@ -4,13 +4,15 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.google.api.services.tasks.model.TaskList; import com.google.api.services.tasks.model.TaskList;
import com.todoroo.andlib.test.TodorooRobolectricTestCaseWithInjector; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.test.TodorooRobolectricTestCase;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
@ -20,32 +22,29 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class GtasksDetailExposerTest extends TodorooRobolectricTestCaseWithInjector { public class GtasksDetailExposerTest extends TodorooRobolectricTestCase {
private Context context; private Context context;
private RobolectricGtasksPreferenceService gtasksPreferenceService; private RobolectricGtasksPreferenceService gtasksPreferenceService;
@Override @Autowired
protected void addInjectables() { private GtasksListService gtasksListService;
testInjector.addInjectable("gtasksPreferenceService", gtasksPreferenceService);
}
@Override @Override
public void setUp() throws Exception { public void before() throws Exception {
gtasksPreferenceService = new RobolectricGtasksPreferenceService();
context = mock(Context.class); context = mock(Context.class);
new GtasksListService().addNewList(
new TaskList().setId("list_id").setTitle("list_title"));
super.setUp(); super.before();
gtasksPreferenceService = addInjectable("gtasksPreferenceService", new RobolectricGtasksPreferenceService());
gtasksListService.addNewList(
new TaskList().setId("list_id").setTitle("list_title"));
} }
@Override @After
public void after() throws Exception { public void after() throws Exception {
verify(context).getApplicationContext(); verify(context).getApplicationContext();
verifyNoMoreInteractions(context); verifyNoMoreInteractions(context);
super.after();
} }
@Test @Test

@ -1,11 +1,13 @@
package com.todoroo.astrid.model; package com.todoroo.astrid.model;
import android.content.ContentValues;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.test.TodorooRobolectricTestCaseWithInjector; import com.todoroo.andlib.test.TodorooRobolectricTestCase;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
@ -13,18 +15,21 @@ import org.tasks.Snippet;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.tasks.Freeze.freezeClock; import static org.tasks.Freeze.freezeClock;
import static org.tasks.RemoteModelHelpers.compareRemoteModel;
import static org.tasks.RemoteModelHelpers.asQueryProperties; import static org.tasks.RemoteModelHelpers.asQueryProperties;
import static org.tasks.RemoteModelHelpers.compareRemoteModel;
import static org.tasks.date.DateTimeUtils.currentTimeMillis; import static org.tasks.date.DateTimeUtils.currentTimeMillis;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TaskTest extends TodorooRobolectricTestCaseWithInjector { public class TaskTest extends TodorooRobolectricTestCase {
private TaskService taskService; private TaskService taskService;
@Before @Override
public void before() { public void before() throws Exception {
super.before();
taskService = new TaskService(); taskService = new TaskService();
} }
@ -51,5 +56,14 @@ public class TaskTest extends TodorooRobolectricTestCaseWithInjector {
compareRemoteModel(task, fromDb); compareRemoteModel(task, fromDb);
} }
@Test
public void testDefaults() {
AstridPreferences.setPreferenceDefaults();
ContentValues defaults = new Task().getDefaultValues();
assertTrue(defaults.containsKey(Task.TITLE.name));
assertTrue(defaults.containsKey(Task.DUE_DATE.name));
assertTrue(defaults.containsKey(Task.HIDE_UNTIL.name));
assertTrue(defaults.containsKey(Task.COMPLETION_DATE.name));
assertTrue(defaults.containsKey(Task.IMPORTANCE.name));
}
} }

@ -40,8 +40,8 @@ public class AdvancedRepeatTest extends TodorooRobolectricTestCase {
private RRule rrule; private RRule rrule;
@Before @Before
public void setUp() throws Exception { public void before() throws Exception {
super.setUp(); super.before();
task = new Task(); task = new Task();
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
rrule = new RRule(); rrule = new RRule();

@ -57,7 +57,7 @@ public class AstridTranslationTest extends TranslationTests {
*/ */
@Test @Test
public void testSpecialStringsMatch() throws Exception { public void testSpecialStringsMatch() throws Exception {
final Resources r = getContext().getResources(); final Resources r = getRobolectricContext().getResources();
final StringBuilder failures = new StringBuilder(); final StringBuilder failures = new StringBuilder();
forEachLocale(new Runnable() { forEachLocale(new Runnable() {

Loading…
Cancel
Save