mirror of https://github.com/tasks/tasks
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.
51 lines
1.6 KiB
Kotlin
51 lines
1.6 KiB
Kotlin
package org.tasks.injection
|
|
|
|
import android.content.Context
|
|
import androidx.room.Room
|
|
import org.tasks.data.db.Database
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import org.mockito.Mockito.mock
|
|
import org.tasks.TestUtilities
|
|
import org.tasks.jobs.WorkManager
|
|
import org.tasks.location.LocationManager
|
|
import org.tasks.location.MockLocationManager
|
|
import org.tasks.preferences.PermissionChecker
|
|
import org.tasks.preferences.PermissivePermissionChecker
|
|
import org.tasks.preferences.Preferences
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
class TestModule {
|
|
@Provides
|
|
@Singleton
|
|
fun getDatabase(@ApplicationContext context: Context): Database {
|
|
return Room.inMemoryDatabaseBuilder(context, Database::class.java)
|
|
.fallbackToDestructiveMigration()
|
|
.build()
|
|
}
|
|
|
|
@Provides
|
|
fun getPermissionChecker(@ApplicationContext context: Context): PermissionChecker {
|
|
return PermissivePermissionChecker(context)
|
|
}
|
|
|
|
@Provides
|
|
fun getPreferences(@ApplicationContext context: Context): Preferences {
|
|
return TestUtilities.newPreferences(context)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun getMockLocationManager(): MockLocationManager = MockLocationManager()
|
|
|
|
@Provides
|
|
fun getLocationManager(locationManager: MockLocationManager): LocationManager = locationManager
|
|
|
|
@Provides
|
|
fun getWorkManager(): WorkManager = mock(WorkManager::class.java)
|
|
} |