/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.test; import java.io.File; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.provider.Astrid3ContentProvider; import com.todoroo.astrid.service.AstridDependencyInjector; /** * Test case that automatically sets up and tears down a test database * * @author Tim Su <tim@todoroo.com> * */ public class DatabaseTestCase extends TodorooTestCaseWithInjector { static { AstridDependencyInjector.initialize(); } public static Database database = new TestDatabase(); @Override protected void addInjectables() { testInjector.addInjectable("database", database); } @Override protected void setUp() throws Exception { // call upstream setup, which invokes dependency injector super.setUp(); // empty out test databases database.clear(); database.openForWriting(); Astrid3ContentProvider.setDatabaseOverride(database); } /** * Helper to delete a database by name * @param database */ protected void deleteDatabase(String database) { File db = getContext().getDatabasePath(database); if(db.exists()) db.delete(); } @Override protected void tearDown() throws Exception { database.close(); super.tearDown(); } public static class TestDatabase extends Database { @Override public String getName() { return "databasetest"; } } }