You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java

122 lines
3.1 KiB
Java

/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.gtasks;
import android.content.Context;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
import org.tasks.injection.TestModule;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
import dagger.Module;
import dagger.Provides;
@SuppressWarnings("nls")
public class GtasksMetadataServiceTest extends DatabaseTestCase {
@Module(addsTo = TestModule.class, injects = {GtasksMetadataServiceTest.class})
static class GtasksMetadataServiceTestModule {
private final GtasksTestPreferenceService service;
public GtasksMetadataServiceTestModule(Context context) {
service = new GtasksTestPreferenceService(new Preferences(context));
}
@Provides
public GtasksTestPreferenceService getGtasksTestPreferenceService() {
return service;
}
@Provides
public GtasksPreferenceService getGtasksPreferenceService() {
return service;
}
}
@Inject GtasksTestPreferenceService preferences;
@Inject GtasksMetadataService gtasksMetadataService;
@Inject MetadataDao metadataDao;
@Inject TaskService taskService;
@Inject GtasksMetadata gtasksMetadata;
private Task task;
private Metadata metadata;
@Override
public void setUp() {
super.setUp();
if (preferences.getDefaultList() == null) {
preferences.setDefaultList("list");
}
}
public void testMetadataFound() {
givenTask(taskWithMetadata(null));
whenSearchForMetadata();
thenExpectMetadataFound();
}
public void testMetadataDoesntExist() {
givenTask(taskWithoutMetadata());
whenSearchForMetadata();
thenExpectNoMetadataFound();
}
// --- helpers
private void thenExpectNoMetadataFound() {
assertNull(metadata);
}
private void thenExpectMetadataFound() {
assertNotNull(metadata);
}
private void whenSearchForMetadata() {
metadata = gtasksMetadataService.getTaskMetadata(task.getId());
}
private Task taskWithMetadata(String id) {
Task task = new Task();
task.setTitle("cats");
taskService.save(task);
Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId());
if (id != null)
metadata.setValue(GtasksMetadata.ID, id);
metadata.setTask(task.getId());
metadataDao.persist(metadata);
return task;
}
private void givenTask(Task taskToTest) {
task = taskToTest;
}
private Task taskWithoutMetadata() {
Task task = new Task();
task.setTitle("dogs");
taskService.save(task);
return task;
}
@Override
protected Object getModule() {
return new GtasksMetadataServiceTestModule(getContext());
}
}