diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/SearchEngineTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/SearchEngineTest.java index b4034e6de..e8a24c9af 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/SearchEngineTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/SearchEngineTest.java @@ -17,18 +17,17 @@ package de.dennisguse.opentracks.content; import android.content.ContentUris; -import android.content.Context; import android.location.Location; import android.net.Uri; -import androidx.test.core.app.ApplicationProvider; -import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.rule.provider.ProviderTestRule; import org.junit.After; import org.junit.Assert; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; -import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Arrays; @@ -39,6 +38,8 @@ import de.dennisguse.opentracks.content.SearchEngine.SearchQuery; import de.dennisguse.opentracks.content.data.Track; import de.dennisguse.opentracks.content.data.Waypoint; import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.content.provider.CustomContentProvider; +import de.dennisguse.opentracks.content.provider.CustomSQLiteOpenHelper; import de.dennisguse.opentracks.stats.TrackStatistics; /** @@ -48,25 +49,29 @@ import de.dennisguse.opentracks.stats.TrackStatistics; * * @author Rodrigo Damazio */ -@RunWith(AndroidJUnit4.class) public class SearchEngineTest { + private static final String TAG = SearchEngineTest.class.getSimpleName(); + private static final Location HERE = new Location("gps"); - private static final long NOW = SearchEngine.OLDEST_ALLOWED_TIMESTAMP + 1000; // After OLDEST_ALLOWED_TIMESTAMP + private static final long NOW = SearchEngine.OLDEST_ALLOWED_TIMESTAMP + 1000; + + @Rule + public ProviderTestRule sqliteContentProviderRule = new ProviderTestRule.Builder(CustomContentProvider.class, ContentProviderUtils.AUTHORITY_PACKAGE).setPrefix(TAG).build(); + private ContentProviderUtils providerUtils; private SearchEngine engine; - private final Context context = ApplicationProvider.getApplicationContext(); - @Before public void setUp() { - providerUtils = new ContentProviderUtils(context); + providerUtils = new ContentProviderUtils(sqliteContentProviderRule.getResolver()); + engine = new SearchEngine(providerUtils); } @After public void tearDown() { - providerUtils.deleteAllTracks(context); + InstrumentationRegistry.getInstrumentation().getTargetContext().deleteDatabase(TAG + CustomSQLiteOpenHelper.DATABASE_NAME); } private long insertTrack(String title, String description, String category, long hoursAgo) { diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java index 8adfc6636..d403b8d1d 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java @@ -56,7 +56,8 @@ public class ContentProviderUtils { private static final int MAX_LATITUDE = 90000000; // The authority (the first part of the URI) for the app's content provider. - static final String AUTHORITY_PACKAGE = BuildConfig.APPLICATION_ID + ".content"; + @VisibleForTesting + public static final String AUTHORITY_PACKAGE = BuildConfig.APPLICATION_ID + ".content"; // The base URI for the app's content provider. public static final String CONTENT_BASE_URI = "content://" + AUTHORITY_PACKAGE; diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java b/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java index f0e548bbf..44c40bc1f 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java @@ -42,7 +42,7 @@ import de.dennisguse.opentracks.content.data.WaypointsColumns; * * @author Leif Hendrik Wilden */ -public abstract class CustomContentProvider extends ContentProvider { +public class CustomContentProvider extends ContentProvider { private static final String TAG = CustomContentProvider.class.getSimpleName(); diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java b/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java index 7ef23b53d..308e39943 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java @@ -20,13 +20,14 @@ import de.dennisguse.opentracks.util.UUIDUtils; * Database helper for creating and upgrading the database. */ @VisibleForTesting -class CustomSQLiteOpenHelper extends SQLiteOpenHelper { +public class CustomSQLiteOpenHelper extends SQLiteOpenHelper { private static final String TAG = CustomSQLiteOpenHelper.class.getSimpleName(); private static final int DATABASE_VERSION = 26; - private static final String DATABASE_NAME = "database.db"; + @VisibleForTesting + public static final String DATABASE_NAME = "database.db"; public CustomSQLiteOpenHelper(Context context) { this(context, DATABASE_NAME);