Updated on 2026-08-14

This commit is contained in:
Tangem 2025-09-10 16:15:18 +04:00
parent 11511d36dd
commit 28b4c29bef
27 changed files with 278 additions and 84 deletions

View file

@ -7,6 +7,7 @@ import com.tangem.domain.account.models.AccountList
import com.tangem.domain.models.TokensGroupType
import com.tangem.domain.models.TokensSortType
import com.tangem.domain.models.account.Account
import com.tangem.domain.models.account.AccountName
import com.tangem.domain.models.wallet.UserWallet
import com.tangem.domain.models.wallet.UserWalletId
@ -23,7 +24,7 @@ internal fun createWalletAccountDTO(
return WalletAccountDTO(
id = accountId ?: mainAccount.accountId.value,
name = accountName ?: mainAccount.accountName.value,
name = accountName ?: (mainAccount.accountName as? AccountName.Custom)?.value,
derivationIndex = derivationIndex ?: mainAccount.derivationIndex.value,
icon = icon ?: mainAccount.icon.value.name,
iconColor = iconColor ?: mainAccount.icon.color.name,

View file

@ -0,0 +1,65 @@
package com.tangem.data.account.converter
import com.google.common.truth.Truth
import com.tangem.common.test.utils.ProvideTestModels
import com.tangem.domain.models.account.AccountName
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.params.ParameterizedTest
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
internal class AccountNameConverterTest {
@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
inner class Convert {
@ParameterizedTest
@ProvideTestModels
fun convert(model: ConvertModel) {
// Act
val actual = AccountNameConverter.convert(value = model.value)
// Assert
val expected = model.expected
Truth.assertThat(actual).isEqualTo(expected)
}
private fun provideTestModels(): List<ConvertModel> {
return listOf(
ConvertModel(
value = AccountName.Custom("MyAccount").getOrNull()!!,
expected = "MyAccount",
),
ConvertModel(value = AccountName.DefaultMain, expected = null),
)
}
}
@Nested
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
inner class ConvertBack {
@ParameterizedTest
@ProvideTestModels
fun convertBack(model: ConvertBackModel) {
// Act
val actual = AccountNameConverter.convertBack(value = model.value)
// Assert
val expected = model.expected
Truth.assertThat(actual).isEqualTo(expected)
}
private fun provideTestModels(): List<ConvertBackModel> {
return listOf(
ConvertBackModel(value = "MyAccount", expected = AccountName.Custom("MyAccount").getOrNull()!!),
ConvertBackModel(value = null, expected = AccountName.DefaultMain),
)
}
}
data class ConvertModel(val value: AccountName, val expected: String?)
data class ConvertBackModel(val value: String?, val expected: AccountName)
}

View file

@ -54,6 +54,12 @@ class ArchivedAccountConverterTest {
),
),
),
TestModel(
value = createDTO(name = null),
expected = Result.success(
createDomain().copy(name = AccountName.DefaultMain),
),
),
TestModel(
value = createDTO(name = ""),
expected = Result.failure(
@ -104,7 +110,7 @@ class ArchivedAccountConverterTest {
private fun createDTO(
accountId: String = "957B88B12730E646E0F33D3618B77DFA579E8231E3C59C7104BE7165611C8027",
name: String = "Test Account",
name: String? = "Test Account",
icon: String = "Letter",
iconColor: String = "Azure",
derivationIndex: Int = 0,
@ -126,7 +132,7 @@ class ArchivedAccountConverterTest {
private fun createDomain(): ArchivedAccount {
return ArchivedAccount(
accountId = AccountId.forCryptoPortfolio(userWalletId, DerivationIndex(0).getOrNull()!!),
name = "Test Account".toAccountName(),
name = AccountName("Test Account").getOrNull()!!,
derivationIndex = 0.toDerivationIndex(),
icon = CryptoPortfolioIcon.ofCustomAccount(
value = CryptoPortfolioIcon.Icon.Letter,

View file

@ -75,6 +75,14 @@ class CryptoPortfolioConverterTest {
),
),
),
ConvertModel(
value = createWalletAccountDTO(userWalletId = userWallet.walletId, accountName = null),
expected = Result.success(
createCryptoPortfolio(userWalletId = userWallet.walletId).copy(
accountName = AccountName.DefaultMain,
),
),
),
ConvertModel(
value = createWalletAccountDTO(userWalletId = userWallet.walletId, accountName = ""),
expected = Result.failure(

View file

@ -5,6 +5,7 @@ import com.tangem.datasource.api.tangemTech.models.account.SaveWalletAccountsRes
import com.tangem.datasource.api.tangemTech.models.account.WalletAccountDTO
import com.tangem.domain.account.models.AccountList
import com.tangem.domain.models.account.Account
import com.tangem.domain.models.account.AccountName
import com.tangem.domain.models.wallet.UserWallet
import com.tangem.domain.models.wallet.UserWalletId
import io.mockk.every
@ -37,7 +38,7 @@ class SaveWalletAccountsResponseConverterTest {
accounts = listOf(
WalletAccountDTO(
id = accountList.mainAccount.accountId.value,
name = accountList.mainAccount.accountName.value,
name = (accountList.mainAccount.accountName as? AccountName.Custom)?.value,
derivationIndex = accountList.mainAccount.derivationIndex.value,
icon = accountList.mainAccount.icon.value.name,
iconColor = accountList.mainAccount.icon.color.name,