diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f3455ac2..4d0891c5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -59,7 +59,9 @@ android { jvmTarget = JavaVersion.VERSION_17.toString() } testOptions { - unitTests.isIncludeAndroidResources = true + unitTests.all { + it.useJUnitPlatform() + } } lint { warningsAsErrors = true @@ -110,7 +112,8 @@ dependencies { // Test libs testImplementation(kotlin("test")) testImplementation("org.junit.jupiter:junit-jupiter:5.11.4") - testImplementation("io.mockk:mockk:1.13.14") + testImplementation("io.mockk:mockk-android:1.13.14") + testImplementation("io.mockk:mockk-agent:1.13.14") } protobuf { protoc { diff --git a/app/src/test/java/com/jkuester/unlauncher/datasource/DataSourceModuleTest.kt b/app/src/test/java/com/jkuester/unlauncher/datasource/DataSourceModuleTest.kt new file mode 100644 index 00000000..3cf308c4 --- /dev/null +++ b/app/src/test/java/com/jkuester/unlauncher/datasource/DataSourceModuleTest.kt @@ -0,0 +1,54 @@ +package com.jkuester.unlauncher.datasource + +import android.content.Context +import androidx.datastore.core.DataStore +import com.jkuester.unlauncher.datastore.CorePreferences +import com.jkuester.unlauncher.datastore.QuickButtonPreferences +import com.jkuester.unlauncher.datastore.UnlauncherApps +import io.mockk.every +import io.mockk.impl.annotations.MockK +import io.mockk.junit5.MockKExtension +import io.mockk.verify +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertInstanceOf +import org.junit.jupiter.api.extension.ExtendWith + +@MockKExtension.CheckUnnecessaryStub +@MockKExtension.ConfirmVerification +@ExtendWith(MockKExtension::class) +class DataSourceModuleTest { + private val dataStoreModule = DataStoreModule() + + @MockK + lateinit var appContext: Context + + @BeforeEach + fun beforeEach() { + every { appContext.applicationContext } returns appContext + } + + @AfterEach + fun afterEach() { + verify { appContext.applicationContext } + } + + @Test + fun provideQuickButtonPreferencesStore() { + val actualStore = dataStoreModule.provideQuickButtonPreferencesStore(appContext) + assertInstanceOf>(actualStore) + } + + @Test + fun provideUnlauncherAppsStore() { + val actualStore = dataStoreModule.provideUnlauncherAppsStore(appContext) + assertInstanceOf>(actualStore) + } + + @Test + fun provideCorePreferencesStore() { + val actualStore = dataStoreModule.provideCorePreferencesStore(appContext) + assertInstanceOf>(actualStore) + } +} diff --git a/build.gradle.kts b/build.gradle.kts index c8840964..4851ca5d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,9 +26,6 @@ allprojects { tasks.register("clean", Delete::class) { delete(rootProject.buildDir) } -tasks.register("test", Test::class) { - useJUnitPlatform() -} plugins { id("com.google.devtools.ksp") version "2.1.0-1.0.29" apply false // This needs to match kotlin-stdlib