From 30c41b5e00500061265d603d2abd954d35ce4f8e Mon Sep 17 00:00:00 2001 From: Jonas Sulzer Date: Tue, 2 Apr 2024 21:58:48 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=A6=20NEW:=20inject=20repository?= =?UTF-8?q?=20using=20hilt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Sulzer --- .../github/swent/echo/di/RepositoryModule.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/src/main/java/com/github/swent/echo/di/RepositoryModule.kt diff --git a/app/src/main/java/com/github/swent/echo/di/RepositoryModule.kt b/app/src/main/java/com/github/swent/echo/di/RepositoryModule.kt new file mode 100644 index 000000000..4b1e176ee --- /dev/null +++ b/app/src/main/java/com/github/swent/echo/di/RepositoryModule.kt @@ -0,0 +1,24 @@ +package com.github.swent.echo.di + +import android.app.Application +import com.github.swent.echo.data.repository.Repository +import com.github.swent.echo.data.repository.RepositoryImpl +import com.github.swent.echo.data.repository.datasources.RemoteDataSource +import com.github.swent.echo.data.repository.datasources.Supabase +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import io.github.jan.supabase.SupabaseClient + +@Module +@InstallIn(SingletonComponent::class) +object RepositoryModule { + + @Provides + fun provideRepository(application: Application, supabaseClient: SupabaseClient): Repository { + val remoteDataSource: RemoteDataSource = Supabase(supabaseClient) + + return RepositoryImpl(remoteDataSource) + } +} From b92cc488defbea7ba8a82c76e2f9a350df15319d Mon Sep 17 00:00:00 2001 From: Jonas Sulzer Date: Tue, 2 Apr 2024 21:59:06 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=85=20TEST:=20repository=20injection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Sulzer --- .../com/github/swent/echo/di/DependencyInjectionTest.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/androidTest/java/com/github/swent/echo/di/DependencyInjectionTest.kt b/app/src/androidTest/java/com/github/swent/echo/di/DependencyInjectionTest.kt index 7f0442df3..f26be66dc 100644 --- a/app/src/androidTest/java/com/github/swent/echo/di/DependencyInjectionTest.kt +++ b/app/src/androidTest/java/com/github/swent/echo/di/DependencyInjectionTest.kt @@ -1,6 +1,8 @@ package com.github.swent.echo.di import com.github.swent.echo.authentication.AuthenticationService +import com.github.swent.echo.data.repository.Repository +import com.github.swent.echo.data.repository.RepositoryImpl import dagger.hilt.android.testing.HiltAndroidRule import dagger.hilt.android.testing.HiltAndroidTest import io.github.jan.supabase.SupabaseClient @@ -29,6 +31,8 @@ class DependencyInjectionTest { @Inject lateinit var authenticationService: AuthenticationService + @Inject lateinit var repository: Repository + @Before fun setUp() { // This tells Hilt to inject the [supabaseClient] and [authenticationService] fields. @@ -48,4 +52,9 @@ class DependencyInjectionTest { fun testAuthenticationServiceInjection() { assertEquals(SimpleAuthenticationService::class.java, authenticationService::class.java) } + + @Test + fun testRepositoryInjection() { + assertEquals(RepositoryImpl::class.java, repository::class.java) + } }