From 9c60b5da78b230288b8ad9e948d03bca57453a04 Mon Sep 17 00:00:00 2001 From: Guilherme Toquete Date: Tue, 19 Nov 2024 16:13:23 -0300 Subject: [PATCH] Removing CountryLocalDataSource --- .../countries/di/LocalDataSourceModule.kt | 18 -------------- .../repository/DefaultCountryRepository.kt | 6 ++--- .../source/local/CountryLocalDataSource.kt | 8 ------- .../local/DefaultCountryLocalDataSource.kt | 14 ----------- .../DefaultCountryRepositoryTest.kt | 12 +++++----- .../DefaultCountryLocalDataSourceTest.kt | 24 ------------------- 6 files changed, 9 insertions(+), 73 deletions(-) delete mode 100644 data/countries/src/main/java/com/toquete/boxbox/data/countries/di/LocalDataSourceModule.kt delete mode 100644 data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/CountryLocalDataSource.kt delete mode 100644 data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSource.kt delete mode 100644 data/countries/src/test/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSourceTest.kt diff --git a/data/countries/src/main/java/com/toquete/boxbox/data/countries/di/LocalDataSourceModule.kt b/data/countries/src/main/java/com/toquete/boxbox/data/countries/di/LocalDataSourceModule.kt deleted file mode 100644 index 68e68c3d..00000000 --- a/data/countries/src/main/java/com/toquete/boxbox/data/countries/di/LocalDataSourceModule.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.toquete.boxbox.data.countries.di - -import com.toquete.boxbox.data.countries.source.local.CountryLocalDataSource -import com.toquete.boxbox.data.countries.source.local.DefaultCountryLocalDataSource -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent - -@Module -@InstallIn(SingletonComponent::class) -internal abstract class LocalDataSourceModule { - - @Binds - abstract fun bindsCountryLocalDataSource( - dataSourceImpl: DefaultCountryLocalDataSource - ): CountryLocalDataSource -} diff --git a/data/countries/src/main/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepository.kt b/data/countries/src/main/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepository.kt index 162ae0c7..af5627fe 100644 --- a/data/countries/src/main/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepository.kt +++ b/data/countries/src/main/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepository.kt @@ -1,9 +1,9 @@ package com.toquete.boxbox.data.countries.repository import com.toquete.boxbox.core.common.annotation.IoDispatcher +import com.toquete.boxbox.core.database.dao.CountryDao import com.toquete.boxbox.core.network.model.CountryResponse import com.toquete.boxbox.data.countries.model.toEntity -import com.toquete.boxbox.data.countries.source.local.CountryLocalDataSource import com.toquete.boxbox.data.countries.source.remote.CountryRemoteDataSource import kotlinx.coroutines.withContext import javax.inject.Inject @@ -11,14 +11,14 @@ import kotlin.coroutines.CoroutineContext internal class DefaultCountryRepository @Inject constructor( private val remoteDataSource: CountryRemoteDataSource, - private val localDataSource: CountryLocalDataSource, + private val countryDao: CountryDao, @IoDispatcher private val dispatcher: CoroutineContext ) : CountryRepository { override suspend fun sync() { withContext(dispatcher) { val list = remoteDataSource.getCountries() - localDataSource.insertAll(list.map(CountryResponse::toEntity)) + countryDao.upsertAll(list.map(CountryResponse::toEntity)) } } } diff --git a/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/CountryLocalDataSource.kt b/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/CountryLocalDataSource.kt deleted file mode 100644 index cff03632..00000000 --- a/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/CountryLocalDataSource.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.toquete.boxbox.data.countries.source.local - -import com.toquete.boxbox.core.database.model.CountryEntity - -internal interface CountryLocalDataSource { - - suspend fun insertAll(countries: List) -} diff --git a/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSource.kt b/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSource.kt deleted file mode 100644 index 9d00554c..00000000 --- a/data/countries/src/main/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSource.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.toquete.boxbox.data.countries.source.local - -import com.toquete.boxbox.core.database.dao.CountryDao -import com.toquete.boxbox.core.database.model.CountryEntity -import javax.inject.Inject - -internal class DefaultCountryLocalDataSource @Inject constructor( - private val countryDao: CountryDao -) : CountryLocalDataSource { - - override suspend fun insertAll(countries: List) { - countryDao.upsertAll(countries) - } -} diff --git a/data/countries/src/test/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepositoryTest.kt b/data/countries/src/test/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepositoryTest.kt index 0e89f401..9c897827 100644 --- a/data/countries/src/test/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepositoryTest.kt +++ b/data/countries/src/test/java/com/toquete/boxbox/data/countries/repository/DefaultCountryRepositoryTest.kt @@ -1,8 +1,8 @@ package com.toquete.boxbox.data.countries.repository +import com.toquete.boxbox.core.database.dao.CountryDao import com.toquete.boxbox.core.testing.data.countryEntities import com.toquete.boxbox.core.testing.data.countryResponses -import com.toquete.boxbox.data.countries.source.local.CountryLocalDataSource import com.toquete.boxbox.data.countries.source.remote.CountryRemoteDataSource import io.mockk.coEvery import io.mockk.coVerify @@ -15,20 +15,20 @@ import java.io.IOException class DefaultCountryRepositoryTest { private val remoteDataSource: CountryRemoteDataSource = mockk(relaxed = true) - private val localDataSource: CountryLocalDataSource = mockk(relaxed = true) + private val countryDao: CountryDao = mockk(relaxed = true) private val testDispatcher = UnconfinedTestDispatcher() - private val repository = DefaultCountryRepository(remoteDataSource, localDataSource, testDispatcher) + private val repository = DefaultCountryRepository(remoteDataSource, countryDao, testDispatcher) @Test fun `sync should insert data in database when remote data is gotten successfully`() = runTest { coEvery { remoteDataSource.getCountries() } returns countryResponses - coEvery { localDataSource.insertAll(any()) } returns Unit + coEvery { countryDao.upsertAll(any()) } returns Unit repository.sync() coVerify { remoteDataSource.getCountries() - localDataSource.insertAll(countryEntities) + countryDao.upsertAll(countryEntities) } } @@ -38,6 +38,6 @@ class DefaultCountryRepositoryTest { repository.sync() - coVerify(exactly = 0) { localDataSource.insertAll(any()) } + coVerify(exactly = 0) { countryDao.upsertAll(any()) } } } diff --git a/data/countries/src/test/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSourceTest.kt b/data/countries/src/test/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSourceTest.kt deleted file mode 100644 index c4052dfa..00000000 --- a/data/countries/src/test/java/com/toquete/boxbox/data/countries/source/local/DefaultCountryLocalDataSourceTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.toquete.boxbox.data.countries.source.local - -import com.toquete.boxbox.core.database.dao.CountryDao -import com.toquete.boxbox.core.testing.data.countryEntities -import io.mockk.coEvery -import io.mockk.coVerify -import io.mockk.mockk -import kotlinx.coroutines.test.runTest -import org.junit.Test - -class DefaultCountryLocalDataSourceTest { - - private val countryDao: CountryDao = mockk(relaxed = true) - private val dataSource = DefaultCountryLocalDataSource(countryDao) - - @Test - fun `insertAll should insert all countries when called`() = runTest { - coEvery { countryDao.upsertAll(any()) } returns Unit - - dataSource.insertAll(countryEntities) - - coVerify { countryDao.upsertAll(countryEntities) } - } -}