Untitled

 avatar
unknown
plain_text
a month ago
2.3 kB
3
Indexable
import org.junit.Assert
import org.junit.Test

class GetTransactionDetailsToAccountUseCaseTest {

    @Test
    fun `account and card associated with account found - should return transaction details`() {
        // Arrange
        val transactionId = "12345"
        val accountNumber = "98765"
        val productData = listOf(ProductData(model = ProductModel(number = accountNumber)))
        val cardData = listOf(Card(associatedAccount = accountNumber))
        
        val transactionalgd = mock(Transactionalgd::class.java)
        val productListProvider = mock(ProductListProvider::class.java)
        val cardProvider = mock(CardProvider::class.java)
        
        `when`(transactionalgd.getTransaction(transactionId)).thenReturn(Transaction(accountNumber = accountNumber))
        `when`(productListProvider.getAll()).thenReturn(productData)
        `when`(cardProvider.getCard()).thenReturn(cardData)
        
        val useCase = GetTransactionDetailsToAccountUseCase(transactionalgd, productListProvider, cardProvider)

        // Act
        val result = useCase.execute(transactionId)

        // Assert
        Assert.assertEquals(accountNumber, result.accountNumber)
        Assert.assertTrue(result.isInternalAccountTransfer)
    }

    @Test
    fun `account and card associated with account not found - should return null`() {
        // Arrange
        val transactionId = "12345"
        val accountNumber = "98765"
        val productData = listOf(ProductData(model = ProductModel(number = "00000")))
        val cardData = listOf(Card(associatedAccount = "00000"))
        
        val transactionalgd = mock(Transactionalgd::class.java)
        val productListProvider = mock(ProductListProvider::class.java)
        val cardProvider = mock(CardProvider::class.java)
        
        `when`(transactionalgd.getTransaction(transactionId)).thenReturn(Transaction(accountNumber = accountNumber))
        `when`(productListProvider.getAll()).thenReturn(productData)
        `when`(cardProvider.getCard()).thenReturn(cardData)
        
        val useCase = GetTransactionDetailsToAccountUseCase(transactionalgd, productListProvider, cardProvider)

        // Act
        val result = useCase.execute(transactionId)

        // Assert
        Assert.assertNull(result)
    }
}
Editor is loading...
Leave a Comment