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.
*/
protected void flushCreated() {
protected void clear() {
createdObjects.clear();
}

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

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

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

@ -27,12 +27,4 @@ public class RobolectricTestDependencyInjector extends AbstractDependencyInjecto
DependencyInjectionService.getInstance().addInjector(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.DependencyInjectionService;
import com.todoroo.andlib.service.RobolectricTestDependencyInjector;
import com.todoroo.astrid.service.AstridDependencyInjector;
import org.junit.After;
import org.junit.Before;
import org.robolectric.Robolectric;
import org.tasks.Broadcaster;
import java.util.Locale;
import static org.mockito.Mockito.mock;
public class TodorooRobolectricTestCase {
static {
AstridDependencyInjector.initialize();
private RobolectricTestDependencyInjector testInjector;
protected <T> T addInjectable(String name, T object) {
testInjector.addInjectable(name, object);
return object;
}
@Before
public void setUp() throws Exception {
ContextManager.setContext(getContext());
AstridDependencyInjector.flush();
public void before() throws Exception {
ContextManager.setContext(getRobolectricContext());
AstridDependencyInjector.reset();
testInjector = RobolectricTestDependencyInjector.initialize("test");
addInjectable("broadcaster", mock(Broadcaster.class));
DependencyInjectionService.getInstance().inject(this);
}
/**
* Loop through each locale and call runnable
*/
public void forEachLocale(Runnable r) {
public static void forEachLocale(Runnable r) {
Locale[] locales = Locale.getAvailableLocales();
for(Locale locale : locales) {
setLocale(locale);
@ -47,15 +55,15 @@ public class TodorooRobolectricTestCase {
/**
* Sets locale
*/
private void setLocale(Locale locale) {
private static void setLocale(Locale locale) {
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
getContext().getResources().updateConfiguration(config, metrics);
DisplayMetrics metrics = getRobolectricContext().getResources().getDisplayMetrics();
getRobolectricContext().getResources().updateConfiguration(config, metrics);
}
protected Context getContext() {
public static Context getRobolectricContext() {
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
public void testFormatStringsMatch() throws Exception {
final Resources r = getContext().getResources();
final Resources r = getRobolectricContext().getResources();
final int[] strings = getResourceIds(getStringResources());
final FormatStringData[] formatStrings = new FormatStringData[strings.length];
@ -199,7 +199,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase {
*/
@Test
public void testDateFormats() throws Exception {
final Resources r = getContext().getResources();
final Resources r = getRobolectricContext().getResources();
final StringBuilder failures = new StringBuilder();
final int[] dateStrings = getDateFormatStrings();
@ -236,7 +236,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase {
*/
@Test
public void testArraySizesMatch() throws Exception {
final Resources r = getContext().getResources();
final Resources r = getRobolectricContext().getResources();
final int[] arrays = getResourceIds(getArrayResources());
final int[] sizes = new int[arrays.length];
final StringBuilder failures = new StringBuilder();

@ -5,8 +5,6 @@
*/
package com.todoroo.andlib.utility;
import com.todoroo.andlib.test.TodorooRobolectricTestCase;
import org.joda.time.DateTime;
import org.junit.After;
import org.junit.Before;
@ -18,6 +16,8 @@ import org.tasks.Snippet;
import java.util.Date;
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.clearTime;
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;
@RunWith(RobolectricTestRunner.class)
public class DateUtilitiesTest extends TodorooRobolectricTestCase {
public class DateUtilitiesTest {
private static Locale defaultLocale;
@ -60,13 +60,13 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase {
DateUtilities.is24HourOverride = false;
for (int i = 0; i < 24; i++) {
d.setHours(i);
DateUtilities.getTimeString(getContext(), d);
DateUtilities.getTimeString(getRobolectricContext(), d);
}
DateUtilities.is24HourOverride = true;
for (int i = 0; i < 24; i++) {
d.setHours(i);
DateUtilities.getTimeString(getContext(), d);
DateUtilities.getTimeString(getRobolectricContext(), d);
}
}
});
@ -206,12 +206,12 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase {
assertTrue(isEndOfMonth(newDate(2014, 11, 30)));
assertTrue(isEndOfMonth(newDate(2014, 12, 31)));
}
@Test
public void notTheEndOfTheMonth() {
for(int month = 1 ; month <= 12 ; month++) {
for (int month = 1; month <= 12; month++) {
int lastDay = new DateTime(2014, month, 1, 0, 0, 0, 0).dayOfMonth().getMaximumValue();
for(int day = 1 ; day < lastDay ; day++) {
for (int day = 1; day < lastDay; day++) {
assertFalse(isEndOfMonth(newDate(2014, month, day)));
}
}

@ -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
public void testSanity() {
assertTrue(Task.IMPORTANCE_DO_OR_DIE < Task.IMPORTANCE_MUST_DO);

@ -4,13 +4,15 @@ import android.content.Context;
import android.content.Intent;
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.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@ -20,32 +22,29 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@RunWith(RobolectricTestRunner.class)
public class GtasksDetailExposerTest extends TodorooRobolectricTestCaseWithInjector {
public class GtasksDetailExposerTest extends TodorooRobolectricTestCase {
private Context context;
private RobolectricGtasksPreferenceService gtasksPreferenceService;
@Override
protected void addInjectables() {
testInjector.addInjectable("gtasksPreferenceService", gtasksPreferenceService);
}
@Autowired
private GtasksListService gtasksListService;
@Override
public void setUp() throws Exception {
gtasksPreferenceService = new RobolectricGtasksPreferenceService();
public void before() throws Exception {
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 {
verify(context).getApplicationContext();
verifyNoMoreInteractions(context);
super.after();
}
@Test

@ -1,11 +1,13 @@
package com.todoroo.astrid.model;
import android.content.ContentValues;
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.service.TaskService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@ -13,18 +15,21 @@ import org.tasks.Snippet;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.tasks.Freeze.freezeClock;
import static org.tasks.RemoteModelHelpers.compareRemoteModel;
import static org.tasks.RemoteModelHelpers.asQueryProperties;
import static org.tasks.RemoteModelHelpers.compareRemoteModel;
import static org.tasks.date.DateTimeUtils.currentTimeMillis;
@RunWith(RobolectricTestRunner.class)
public class TaskTest extends TodorooRobolectricTestCaseWithInjector {
public class TaskTest extends TodorooRobolectricTestCase {
private TaskService taskService;
@Before
public void before() {
@Override
public void before() throws Exception {
super.before();
taskService = new TaskService();
}
@ -51,5 +56,14 @@ public class TaskTest extends TodorooRobolectricTestCaseWithInjector {
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;
@Before
public void setUp() throws Exception {
super.setUp();
public void before() throws Exception {
super.before();
task = new Task();
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
rrule = new RRule();

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

Loading…
Cancel
Save