Wrote first gtasks unit test, first unit test passes.

pull/14/head
Tim Su 15 years ago
parent 0cf572de59
commit d00a35bf58

@ -52,7 +52,7 @@ public class GtasksDecorationExposer implements TaskDecorationExposer {
RemoteViews decoration = new RemoteViews(ContextManager.getContext().getPackageName(), RemoteViews decoration = new RemoteViews(ContextManager.getContext().getPackageName(),
R.layout.gtasks_decoration); R.layout.gtasks_decoration);
decoration.setInt(R.id.indent, "setWidth", indentation * 20); //$NON-NLS-1$ decoration.setInt(R.id.indent, "setMinWidth", indentation * 20); //$NON-NLS-1$
return new TaskDecoration(decoration, TaskDecoration.POSITION_LEFT, 0); return new TaskDecoration(decoration, TaskDecoration.POSITION_LEFT, 0);
} }

@ -36,6 +36,10 @@ public class MilkDetailExposer extends BroadcastReceiver {
@Autowired private MilkMetadataService milkMetadataService; @Autowired private MilkMetadataService milkMetadataService;
@Autowired private MilkListService milkListService; @Autowired private MilkListService milkListService;
static {
MilkDependencyInjector.initialize();
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
ContextManager.setContext(context); ContextManager.setContext(context);

@ -40,6 +40,10 @@ public class MilkFilterExposer extends BroadcastReceiver {
@Autowired private MilkListService milkListService; @Autowired private MilkListService milkListService;
static {
MilkDependencyInjector.initialize();
}
private Filter filterFromList(Context context, StoreObject list) { private Filter filterFromList(Context context, StoreObject list) {
String listName = list.getValue(MilkListFields.NAME); String listName = list.getValue(MilkListFields.NAME);
String title = context.getString(R.string.rmilk_FEx_list_title, String title = context.getString(R.string.rmilk_FEx_list_title,

@ -11,6 +11,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import org.weloveastrid.rmilk.MilkBackgroundService; import org.weloveastrid.rmilk.MilkBackgroundService;
import org.weloveastrid.rmilk.MilkDependencyInjector;
import org.weloveastrid.rmilk.MilkLoginActivity; import org.weloveastrid.rmilk.MilkLoginActivity;
import org.weloveastrid.rmilk.MilkPreferences; import org.weloveastrid.rmilk.MilkPreferences;
import org.weloveastrid.rmilk.MilkUtilities; import org.weloveastrid.rmilk.MilkUtilities;
@ -64,6 +65,10 @@ public class MilkSyncProvider extends SyncProvider<MilkTaskContainer> {
@Autowired private MilkMetadataService milkMetadataService; @Autowired private MilkMetadataService milkMetadataService;
@Autowired private MilkListService milkListService; @Autowired private MilkListService milkListService;
static {
MilkDependencyInjector.initialize();
}
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// ------------------------------------------------------- public methods // ------------------------------------------------------- public methods
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------

@ -1,7 +1,5 @@
package com.todoroo.andlib.test; package com.todoroo.andlib.test;
import android.test.AndroidTestCase;
import com.todoroo.andlib.service.TestDependencyInjector; import com.todoroo.andlib.service.TestDependencyInjector;
/** /**
@ -10,7 +8,7 @@ import com.todoroo.andlib.service.TestDependencyInjector;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
abstract public class TodorooTestCaseWithInjector extends AndroidTestCase { abstract public class TodorooTestCaseWithInjector extends TodorooTestCase {
protected TestDependencyInjector testInjector; protected TestDependencyInjector testInjector;

@ -1,7 +1,6 @@
package com.todoroo.astrid.gtasks; package com.todoroo.astrid.gtasks;
import android.view.View; import android.view.View;
import android.widget.FrameLayout;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -19,7 +18,7 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
private TaskDecoration result; private TaskDecoration result;
public void testExposeNotLoggedIn() { public void testExposeNotLoggedIn() {
givenLoggedInStatus(true); givenLoggedInStatus(false);
whenRequestingDecoration(gtasksFilter(), indentedTask(1)); whenRequestingDecoration(gtasksFilter(), indentedTask(1));
@ -27,7 +26,7 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
} }
public void testExposeLoggedInButNormalFilter() { public void testExposeLoggedInButNormalFilter() {
givenLoggedInStatus(false); givenLoggedInStatus(true);
whenRequestingDecoration(nonGtasksFilter(), indentedTask(1)); whenRequestingDecoration(nonGtasksFilter(), indentedTask(1));
@ -42,7 +41,7 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
thenExpectDecoration(1); thenExpectDecoration(1);
} }
public void testExposeIndentationWithNormalTask() { public void testExposeIndentationWithTopLevelTask() {
givenLoggedInStatus(true); givenLoggedInStatus(true);
whenRequestingDecoration(gtasksFilter(), nonIndentedTask()); whenRequestingDecoration(gtasksFilter(), nonIndentedTask());
@ -63,13 +62,14 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
private void thenExpectWiderThan(Task otherTask) { private void thenExpectWiderThan(Task otherTask) {
assertNotNull(result); assertNotNull(result);
RemoteViews view = result.decoration; RemoteViews view = result.decoration;
FrameLayout parent = new FrameLayout(getContext()); View inflated = view.apply(getContext(), null);
View inflated = view.apply(getContext(), parent); inflated.measure(100, 100);
int width = inflated.getWidth(); int width = inflated.getMeasuredWidth();
result = new GtasksDecorationExposer().expose(gtasksFilter(), otherTask); result = new GtasksDecorationExposer().expose(gtasksFilter(), otherTask);
View otherInflated = result.decoration.apply(getContext(), parent); View otherInflated = result.decoration.apply(getContext(), null);
int otherWidth = otherInflated.getWidth(); otherInflated.measure(100, 100);
int otherWidth = otherInflated.getMeasuredWidth();
assertTrue(width + " > " + otherWidth, width > otherWidth); assertTrue(width + " > " + otherWidth, width > otherWidth);
} }
@ -84,9 +84,9 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
private void thenExpectDecoration(int minWidth) { private void thenExpectDecoration(int minWidth) {
assertNotNull(result); assertNotNull(result);
RemoteViews view = result.decoration; RemoteViews view = result.decoration;
FrameLayout parent = new FrameLayout(getContext()); View inflated = view.apply(getContext(), null);
View inflated = view.apply(getContext(), parent); inflated.measure(100, 100);
assertTrue("actual: " + inflated.getWidth(), inflated.getWidth() > minWidth); assertTrue("actual: " + inflated.getMeasuredWidth(), inflated.getMeasuredWidth() > minWidth);
} }
private Filter gtasksFilter() { private Filter gtasksFilter() {
@ -101,13 +101,13 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
PluginServices.getTaskService().save(task); PluginServices.getTaskService().save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(); Metadata metadata = GtasksMetadata.createEmptyMetadata();
metadata.setValue(GtasksMetadata.INDENTATION, indentation); metadata.setValue(GtasksMetadata.INDENTATION, indentation);
metadata.setValue(Metadata.TASK, task.getId());
PluginServices.getMetadataService().save(metadata); PluginServices.getMetadataService().save(metadata);
return task; return task;
} }
private Filter nonGtasksFilter() { private Filter nonGtasksFilter() {
return CoreFilterExposer.buildInboxFilter(getContext().getResources()); return CoreFilterExposer.buildInboxFilter(getContext().getResources());
} }
@Override @Override

@ -15,12 +15,12 @@ import com.todoroo.astrid.service.AstridDependencyInjector;
*/ */
public class DatabaseTestCase extends TodorooTestCaseWithInjector { public class DatabaseTestCase extends TodorooTestCaseWithInjector {
public static Database database = new TestDatabase();
static { static {
AstridDependencyInjector.initialize(); AstridDependencyInjector.initialize();
} }
public static Database database = new TestDatabase();
@Override @Override
protected void addInjectables() { protected void addInjectables() {
testInjector.addInjectable("database", database); testInjector.addInjectable("database", database);

Loading…
Cancel
Save