From 46e30d93fbfd8fc2b9b2dae690a1cd6081bb3894 Mon Sep 17 00:00:00 2001 From: Kammerlo Date: Mon, 3 Mar 2025 17:02:16 +0100 Subject: [PATCH] chore: adding tests --- .../internal/TransactionConverterTest.java | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 accounting_reporting_core/src/test/java/org/cardanofoundation/lob/app/accounting_reporting_core/service/internal/TransactionConverterTest.java diff --git a/accounting_reporting_core/src/test/java/org/cardanofoundation/lob/app/accounting_reporting_core/service/internal/TransactionConverterTest.java b/accounting_reporting_core/src/test/java/org/cardanofoundation/lob/app/accounting_reporting_core/service/internal/TransactionConverterTest.java new file mode 100644 index 00000000..1b5cce4d --- /dev/null +++ b/accounting_reporting_core/src/test/java/org/cardanofoundation/lob/app/accounting_reporting_core/service/internal/TransactionConverterTest.java @@ -0,0 +1,99 @@ +package org.cardanofoundation.lob.app.accounting_reporting_core.service.internal; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.Optional; +import java.util.Set; + +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.SystemExtractionParameters; +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.Transaction; +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.TransactionType; +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.core.UserExtractionParameters; +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.entity.FilteringParameters; +import org.cardanofoundation.lob.app.accounting_reporting_core.domain.entity.TransactionEntity; + +@ExtendWith(MockitoExtension.class) +class TransactionConverterTest { + + @Mock + private CoreCurrencyService coreCurrencyService; + @Mock + OrganisationConverter organisationConverter; + + @InjectMocks + private TransactionConverter transactionConverter; + + private UserExtractionParameters userParams; + private SystemExtractionParameters systemParams; + private Transaction transaction; + private TransactionEntity transactionEntity; + + @BeforeEach + void setUp() { + userParams = mock(UserExtractionParameters.class); + systemParams = mock(SystemExtractionParameters.class); + transaction = mock(Transaction.class); + transactionEntity = mock(TransactionEntity.class); + } + + @Test + void testConvertToDbDetached_WithSystemAndUserParams() { + when(userParams.getOrganisationId()).thenReturn("org123"); + FilteringParameters result = transactionConverter.convertToDbDetached(systemParams, userParams); + Assertions.assertNotNull(result); + Assertions.assertEquals("org123", result.getOrganisationId()); + } + + @Test + void testConvertToDbDetached_WithOptionalSystemParams() { + when(userParams.getOrganisationId()).thenReturn("org123"); + Optional optionalParams = Optional.of(systemParams); + FilteringParameters result = transactionConverter.convertToDbDetached(userParams, optionalParams); + Assertions.assertNotNull(result); + Assertions.assertEquals("org123", result.getOrganisationId()); + } + + @Test + void testConvertToDbDetached_UserParamsOnly() { + when(userParams.getOrganisationId()).thenReturn("org123"); + FilteringParameters result = transactionConverter.convertToDbDetached(userParams); + Assertions.assertNotNull(result); + Assertions.assertEquals("org123", result.getOrganisationId()); + } + + @Test + void testConvertToDbDetached_SetOfTransactions() { + Set transactions = Set.of(transaction); + Set result = transactionConverter.convertToDbDetached(transactions); + Assertions.assertNotNull(result); + Assertions.assertEquals(1, result.size()); + } + + @Test + void testConvertFromDb_SetOfTransactionEntities() { + Set transactionEntities = Set.of(transactionEntity); + Set result = transactionConverter.convertFromDb(transactionEntities); + Assertions.assertNotNull(result); + Assertions.assertEquals(1, result.size()); + } + + @Test + void testCopyFields() { + TransactionEntity attached = new TransactionEntity(); + TransactionEntity detached = new TransactionEntity(); + detached.setTransactionType(TransactionType.BillCredit); + + transactionConverter.copyFields(attached, detached); + Assertions.assertEquals(TransactionType.BillCredit, attached.getTransactionType()); + } +}