diff --git a/common/src/main/kotlin/br/com/stonks/common/di/CommonModule.kt b/common/src/main/kotlin/br/com/stonks/common/di/CommonModule.kt index 47d64a9..b4b8401 100644 --- a/common/src/main/kotlin/br/com/stonks/common/di/CommonModule.kt +++ b/common/src/main/kotlin/br/com/stonks/common/di/CommonModule.kt @@ -1,8 +1,6 @@ package br.com.stonks.common.di -import android.content.res.AssetManager import com.google.gson.Gson -import org.koin.android.ext.koin.androidApplication import org.koin.dsl.module val commonModule = module { @@ -10,8 +8,4 @@ val commonModule = module { factory { Gson() } - - factory { - androidApplication().assets - } } diff --git a/common/src/test/kotlin/br/com/stonks/common/di/CommonModuleTest.kt b/common/src/test/kotlin/br/com/stonks/common/di/CommonModuleTest.kt new file mode 100644 index 0000000..8d9757d --- /dev/null +++ b/common/src/test/kotlin/br/com/stonks/common/di/CommonModuleTest.kt @@ -0,0 +1,33 @@ +package br.com.stonks.common.di + +import android.app.Application +import android.content.Context +import io.mockk.mockk +import io.mockk.mockkClass +import org.junit.Rule +import org.junit.Test +import org.koin.android.ext.koin.androidContext +import org.koin.dsl.koinApplication +import org.koin.test.KoinTest +import org.koin.test.check.checkModules +import org.koin.test.mock.MockProviderRule + +class CommonModuleTest : KoinTest { + + @get:Rule + val mockProvider = MockProviderRule.create { clazz -> + mockkClass(clazz) + } + + @Test + fun `given common di module then check dependency injections`() { + koinApplication { + androidContext(mockk(relaxed = true)) + modules(commonModule) + checkModules { + withInstance() + withInstance() + } + } + } +} diff --git a/design-system/build.gradle.kts b/design-system/build.gradle.kts index 5ac0de6..434eef4 100644 --- a/design-system/build.gradle.kts +++ b/design-system/build.gradle.kts @@ -9,4 +9,6 @@ android { dependencies { implementation(projects.common) + + testImplementation(libs.bundles.test.jvm) } diff --git a/design-system/src/main/kotlin/br/com/stonks/designsystem/components/PieChartLayout.kt b/design-system/src/main/kotlin/br/com/stonks/designsystem/components/PieChartLayout.kt index f266554..1be110f 100644 --- a/design-system/src/main/kotlin/br/com/stonks/designsystem/components/PieChartLayout.kt +++ b/design-system/src/main/kotlin/br/com/stonks/designsystem/components/PieChartLayout.kt @@ -148,7 +148,7 @@ fun PieChartLayout( Box( modifier = Modifier .fillMaxWidth(FractionToken.level7) - .aspectRatio(1f), + .aspectRatio(FractionToken.level10), contentAlignment = Alignment.Center, ) { data.dataProgress.forEach { diff --git a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ColorToken.kt b/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ColorToken.kt index df1d31e..0c6cc02 100644 --- a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ColorToken.kt +++ b/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ColorToken.kt @@ -16,7 +16,6 @@ object ColorToken { val Grayscale100 = Color(0xFFDCDCDC) val Grayscale200 = Color(0xFFA6A6A6) val Grayscale300 = Color(0xFF717171) - val Grayscale400 = Color(0xFF1A1A1A) /* highlight */ val HighlightPurple = Color(0xFF8F0F4E) diff --git a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ShapeSizeToken.kt b/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ShapeSizeToken.kt deleted file mode 100644 index be92ff8..0000000 --- a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/ShapeSizeToken.kt +++ /dev/null @@ -1,10 +0,0 @@ -package br.com.stonks.designsystem.tokens - -import androidx.compose.ui.unit.dp - -object ShapeSizeToken { - val none = 0.dp - val sm = 2.dp - val md = 4.dp - val lg = 8.dp -} diff --git a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/SpacingToken.kt b/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/SpacingToken.kt index 97e415b..fdda569 100644 --- a/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/SpacingToken.kt +++ b/design-system/src/main/kotlin/br/com/stonks/designsystem/tokens/SpacingToken.kt @@ -4,7 +4,6 @@ import androidx.compose.ui.unit.dp object SpacingToken { val none = 0.dp - val xxs = 2.dp val xs = 4.dp val sm = 8.dp val md = 12.dp diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index 4938064..606edde 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -16,6 +16,7 @@ dependencies { implementation(libs.retrofit.core) testImplementation(libs.bundles.test.jvm) + testImplementation(libs.androidx.arch.testing) androidTestImplementation(libs.bundles.test.jvm) androidTestImplementation(libs.bundles.test.android) } diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/di/HomeModule.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/di/HomeModule.kt index eb4680b..cc2d5f0 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/di/HomeModule.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/di/HomeModule.kt @@ -1,8 +1,8 @@ package br.com.stonks.feature.home.di import br.com.stonks.common.states.ViewModelState -import br.com.stonks.feature.home.domain.mapper.DailyTransactionMapper -import br.com.stonks.feature.home.domain.mapper.WalletMapper +import br.com.stonks.feature.home.domain.mapper.DailyTransactionResponseToModelMapper +import br.com.stonks.feature.home.domain.mapper.WalletResponseToModelMapper import br.com.stonks.feature.home.domain.usecase.DailyTransactionUseCase import br.com.stonks.feature.home.domain.usecase.HomeContentUseCase import br.com.stonks.feature.home.domain.usecase.WalletUseCase @@ -10,7 +10,7 @@ import br.com.stonks.feature.home.repository.HomeRepository import br.com.stonks.feature.home.repository.HomeRepositoryImpl import br.com.stonks.feature.home.repository.remote.HomeApiService import br.com.stonks.feature.home.repository.remote.HomeRemoteDataSource -import br.com.stonks.feature.home.ui.mapper.HomeUiMapper +import br.com.stonks.feature.home.domain.mapper.HomeModelToUiMapper import br.com.stonks.feature.home.ui.viewmodel.HOME_VM_QUALIFIER import br.com.stonks.feature.home.ui.viewmodel.HomeViewModel import br.com.stonks.infrastructure.network.provider.NetworkServiceProvider @@ -40,28 +40,28 @@ val homeModule = module { } factory { - WalletMapper() + WalletResponseToModelMapper() } factory { - DailyTransactionMapper() + DailyTransactionResponseToModelMapper() } factory { - HomeUiMapper() + HomeModelToUiMapper() } factory { WalletUseCase( homeRepository = get(), - walletMapper = get(), + walletModelMapper = get(), ) } factory { DailyTransactionUseCase( homeRepository = get(), - dailyTransactionMapper = get(), + dailyTransactionModelMapper = get(), ) } diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapper.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapper.kt similarity index 89% rename from feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapper.kt rename to feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapper.kt index b7aa017..a4bac15 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapper.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapper.kt @@ -7,7 +7,8 @@ import br.com.stonks.feature.home.domain.types.TransactionType import br.com.stonks.feature.home.repository.remote.response.DailyTransactionResponse import br.com.stonks.feature.home.repository.remote.response.TransactionResponse -internal class DailyTransactionMapper : Mapper, List> { +internal class DailyTransactionResponseToModelMapper : + Mapper, List> { override fun mapper(input: List): List { return input.map(::mapperDailyGroup) diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/mapper/HomeUiMapper.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapper.kt similarity index 95% rename from feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/mapper/HomeUiMapper.kt rename to feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapper.kt index 57d129d..55d7cf8 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/mapper/HomeUiMapper.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapper.kt @@ -1,4 +1,4 @@ -package br.com.stonks.feature.home.ui.mapper +package br.com.stonks.feature.home.domain.mapper import br.com.stonks.common.formatters.DatePattern import br.com.stonks.common.formatters.formatTo @@ -17,7 +17,7 @@ import br.com.stonks.feature.home.ui.model.TransactionUiModel import br.com.stonks.feature.home.utils.getColor import br.com.stonks.feature.home.utils.getIcon -internal class HomeUiMapper : Mapper { +internal class HomeModelToUiMapper : Mapper { override fun mapper(input: HomeContentModel) = HomeUiModel( totalAssets = input.wallet.totalAssets, diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapper.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapper.kt similarity index 92% rename from feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapper.kt rename to feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapper.kt index 1a95432..173ba60 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapper.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapper.kt @@ -7,7 +7,7 @@ import br.com.stonks.feature.home.domain.types.PortfolioType import br.com.stonks.feature.home.repository.remote.response.PortfolioResponse import br.com.stonks.feature.home.repository.remote.response.WalletResponse -internal class WalletMapper : Mapper { +internal class WalletResponseToModelMapper : Mapper { override fun mapper(input: WalletResponse) = WalletModel( availableBalance = input.availableBalance, diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/DailyTransactionUseCase.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/DailyTransactionUseCase.kt index 11719c7..e94215f 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/DailyTransactionUseCase.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/DailyTransactionUseCase.kt @@ -1,19 +1,19 @@ package br.com.stonks.feature.home.domain.usecase import br.com.stonks.common.utils.asFlow -import br.com.stonks.feature.home.domain.mapper.DailyTransactionMapper +import br.com.stonks.feature.home.domain.mapper.DailyTransactionResponseToModelMapper import br.com.stonks.feature.home.domain.model.DailyTransactionModel import br.com.stonks.feature.home.repository.HomeRepository import kotlinx.coroutines.flow.Flow internal class DailyTransactionUseCase( private val homeRepository: HomeRepository, - private val dailyTransactionMapper: DailyTransactionMapper, + private val dailyTransactionModelMapper: DailyTransactionResponseToModelMapper, ) { suspend operator fun invoke(): Flow> { return homeRepository.getTransactions().mapCatching { - dailyTransactionMapper.mapper(it) + dailyTransactionModelMapper.mapper(it) }.asFlow() } } diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/WalletUseCase.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/WalletUseCase.kt index 41b6448..65645de 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/WalletUseCase.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/domain/usecase/WalletUseCase.kt @@ -1,19 +1,19 @@ package br.com.stonks.feature.home.domain.usecase import br.com.stonks.common.utils.asFlow -import br.com.stonks.feature.home.domain.mapper.WalletMapper +import br.com.stonks.feature.home.domain.mapper.WalletResponseToModelMapper import br.com.stonks.feature.home.domain.model.WalletModel import br.com.stonks.feature.home.repository.HomeRepository import kotlinx.coroutines.flow.Flow internal class WalletUseCase( private val homeRepository: HomeRepository, - private val walletMapper: WalletMapper, + private val walletModelMapper: WalletResponseToModelMapper, ) { suspend operator fun invoke(): Flow { return homeRepository.getWallet().mapCatching { - walletMapper.mapper(it) + walletModelMapper.mapper(it) }.asFlow() } } diff --git a/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/viewmodel/HomeViewModel.kt b/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/viewmodel/HomeViewModel.kt index 5fb3211..07ba169 100644 --- a/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/viewmodel/HomeViewModel.kt +++ b/feature/home/src/main/kotlin/br/com/stonks/feature/home/ui/viewmodel/HomeViewModel.kt @@ -3,7 +3,7 @@ package br.com.stonks.feature.home.ui.viewmodel import androidx.lifecycle.viewModelScope import br.com.stonks.common.states.ViewModelState import br.com.stonks.feature.home.domain.usecase.HomeContentUseCase -import br.com.stonks.feature.home.ui.mapper.HomeUiMapper +import br.com.stonks.feature.home.domain.mapper.HomeModelToUiMapper import br.com.stonks.feature.home.ui.states.HomeUiEvent import br.com.stonks.feature.home.ui.states.HomeUiState import kotlinx.coroutines.flow.MutableStateFlow @@ -17,7 +17,7 @@ internal val HOME_VM_QUALIFIER: String = HomeViewModel::class.java.simpleName internal class HomeViewModel( private val homeContentUseCase: HomeContentUseCase, - private val homeUiMapper: HomeUiMapper, + private val homeUiMapper: HomeModelToUiMapper, ) : ViewModelState() { init { diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/DailyTransactionUseCaseTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/DailyTransactionUseCaseTest.kt index 609c18a..d25e97e 100644 --- a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/DailyTransactionUseCaseTest.kt +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/DailyTransactionUseCaseTest.kt @@ -1,7 +1,7 @@ package br.com.stonks.feature.home.domain.domain.usecase import br.com.stonks.common.exception.StonksApiException -import br.com.stonks.feature.home.domain.mapper.DailyTransactionMapper +import br.com.stonks.feature.home.domain.mapper.DailyTransactionResponseToModelMapper import br.com.stonks.feature.home.domain.usecase.DailyTransactionUseCase import br.com.stonks.feature.home.repository.HomeRepository import br.com.stonks.feature.home.repository.remote.response.DailyTransactionResponse @@ -22,7 +22,7 @@ class DailyTransactionUseCaseTest { private val fakeResponse = mockk>() private val homeRepositoryMock = mockk() - private val dailyTransactionMapperMock = mockk() + private val dailyTransactionMapperMock = mockk() private val sut = DailyTransactionUseCase(homeRepositoryMock, dailyTransactionMapperMock) @Test diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/HomeContentUseCaseTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/HomeContentUseCaseTest.kt new file mode 100644 index 0000000..143e5a1 --- /dev/null +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/HomeContentUseCaseTest.kt @@ -0,0 +1,55 @@ +package br.com.stonks.feature.home.domain.domain.usecase + +import app.cash.turbine.test +import br.com.stonks.feature.home.domain.model.DailyTransactionModel +import br.com.stonks.feature.home.domain.model.HomeContentModel +import br.com.stonks.feature.home.domain.model.WalletModel +import br.com.stonks.feature.home.domain.usecase.DailyTransactionUseCase +import br.com.stonks.feature.home.domain.usecase.HomeContentUseCase +import br.com.stonks.feature.home.domain.usecase.WalletUseCase +import io.mockk.coEvery +import io.mockk.mockk +import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertEquals +import org.junit.Test +import java.util.Date + +class HomeContentUseCaseTest { + + private val currentDate = Date() + private val walletUseCaseMock = mockk() + private val dailyTransactionUseCaseMock = mockk() + private val sut = HomeContentUseCase(walletUseCaseMock, dailyTransactionUseCaseMock) + + @Test + fun `given use case when fetch data with success then return valid result`() = runTest { + coEvery { walletUseCaseMock() } returns flowOf(fakeWallet) + coEvery { dailyTransactionUseCaseMock() } returns flowOf(fakeTransaction) + + sut.fetchData().test { + assertEquals(fakeHomeContent(), awaitItem()) + awaitComplete() + } + } + + private fun fakeHomeContent() = HomeContentModel( + wallet = fakeWallet, + dailyTransactions = fakeTransaction, + ) + + private val fakeWallet = WalletModel( + availableBalance = 1.0, + investedBalance = 1.0, + totalAssets = 2.0, + portfolio = emptyList(), + ) + + private val fakeTransaction = listOf( + DailyTransactionModel( + date = currentDate, + dailyBalance = 1.0, + transactions = emptyList(), + ) + ) +} diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/WalletUseCaseTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/WalletUseCaseTest.kt index 17c5995..4841f3b 100644 --- a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/WalletUseCaseTest.kt +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/domain/usecase/WalletUseCaseTest.kt @@ -1,7 +1,7 @@ package br.com.stonks.feature.home.domain.domain.usecase import br.com.stonks.common.exception.StonksApiException -import br.com.stonks.feature.home.domain.mapper.WalletMapper +import br.com.stonks.feature.home.domain.mapper.WalletResponseToModelMapper import br.com.stonks.feature.home.domain.usecase.WalletUseCase import br.com.stonks.feature.home.repository.HomeRepository import br.com.stonks.feature.home.repository.remote.response.WalletResponse @@ -22,7 +22,7 @@ class WalletUseCaseTest { private val fakeResponse = mockk() private val homeRepositoryMock = mockk() - private val walletMapperMock = mockk() + private val walletMapperMock = mockk() private val sut = WalletUseCase(homeRepositoryMock, walletMapperMock) @Test diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapperTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapperTest.kt similarity index 93% rename from feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapperTest.kt rename to feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapperTest.kt index 9b6987e..8f32c39 100644 --- a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionMapperTest.kt +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/DailyTransactionResponseToModelMapperTest.kt @@ -9,10 +9,10 @@ import org.junit.Test import java.util.Date import kotlin.test.assertEquals -class DailyTransactionMapperTest { +class DailyTransactionResponseToModelMapperTest { private val transactionDate = Date() - private val sut = DailyTransactionMapper() + private val sut = DailyTransactionResponseToModelMapper() @Test fun `given response data when call mapper then convert to model`() { diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapperTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapperTest.kt new file mode 100644 index 0000000..2bb04fb --- /dev/null +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/HomeModelToUiMapperTest.kt @@ -0,0 +1,97 @@ +package br.com.stonks.feature.home.domain.mapper + +import br.com.stonks.designsystem.components.PieChartData +import br.com.stonks.designsystem.components.PieChartDataProgress +import br.com.stonks.designsystem.tokens.ColorToken +import br.com.stonks.feature.home.domain.model.DailyTransactionModel +import br.com.stonks.feature.home.domain.model.HomeContentModel +import br.com.stonks.feature.home.domain.model.PortfolioModel +import br.com.stonks.feature.home.domain.model.TransactionModel +import br.com.stonks.feature.home.domain.model.WalletModel +import br.com.stonks.feature.home.domain.types.PortfolioType +import br.com.stonks.feature.home.domain.types.TransactionType +import br.com.stonks.feature.home.ui.model.DailyTransactionUiModel +import br.com.stonks.feature.home.ui.model.HomeUiModel +import br.com.stonks.feature.home.ui.model.PortfolioUiModel +import br.com.stonks.feature.home.ui.model.TransactionUiModel +import org.junit.Assert.assertEquals +import org.junit.Test +import java.util.Date + +class HomeModelToUiMapperTest { + + private val currentDate = Date(2024, 4, 3) + private val sut = HomeModelToUiMapper() + + @Test + fun `given model when call mapper then convert to ui model`() { + val expected = createResultData() + val result = sut.mapper(createInputData()) + + assertEquals(expected, result) + } + + private fun createResultData() = HomeUiModel( + totalAssets = 1.0, + portfolioChart = PieChartData( + title = "Todos os produtos", + value = 1.0, + dataProgress = listOf( + PieChartDataProgress( + progress = 0.5f, + progressColor = ColorToken.HighlightOrange, + ), + ), + ), + portfolio = listOf( + PortfolioUiModel( + tagColor = ColorToken.HighlightOrange, + portfolioName = "lorem", + totalInvestment = 1.0, + allocation = 0.5f, + ), + ), + dailyTransactions = listOf( + DailyTransactionUiModel( + dateGroup = "03 de maio", + dailyBalance = 1.0, + transactions = listOf( + TransactionUiModel( + icon = br.com.stonks.designsystem.R.drawable.ic_income, + description = "ipsum", + value = 5.0, + ), + ), + ), + ), + ) + + private fun createInputData() = HomeContentModel( + wallet = WalletModel( + availableBalance = 1.0, + investedBalance = 1.0, + totalAssets = 1.0, + portfolio = listOf( + PortfolioModel( + portfolioName = "lorem", + portfolioType = PortfolioType.DIGITAL_ACCOUNT, + totalInvestment = 1.0, + allocation = 0.5f, + ) + ), + ), + dailyTransactions = listOf( + DailyTransactionModel( + date = currentDate, + dailyBalance = 1.0, + transactions = listOf( + TransactionModel( + type = TransactionType.INCOME, + description = "ipsum", + value = 5.0, + ), + ) + ), + ), + ) +} diff --git a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapperTest.kt b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapperTest.kt similarity index 94% rename from feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapperTest.kt rename to feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapperTest.kt index f4e5ddb..7c90653 100644 --- a/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletMapperTest.kt +++ b/feature/home/src/test/kotlin/br/com/stonks/feature/home/domain/mapper/WalletResponseToModelMapperTest.kt @@ -8,9 +8,9 @@ import br.com.stonks.feature.home.repository.remote.response.WalletResponse import org.junit.Test import kotlin.test.assertEquals -class WalletMapperTest { +class WalletResponseToModelMapperTest { - private val sut = WalletMapper() + private val sut = WalletResponseToModelMapper() @Test fun `given response data when call mapper then convert to model`() {