From af509f53a113c3b5e3ca4274cb83bf4c3c58ac00 Mon Sep 17 00:00:00 2001 From: "diffblue-cover[bot]" <141632862+diffblue-cover[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 10:33:25 +0000 Subject: [PATCH 1/3] Configuring Diffblue Cover Added a GitHub Actions workflow `.github/workflows/DiffblueCover.yml` invoking Diffblue Cover on each pull request. This default workflow configuration should be sufficient for single module Maven projects, but will need further customization for more complex projects. ## Next steps - [ ] Obtain a license activation code. - Contact sales@diffblue.com if you don't already have one. - [ ] Obtain a GitHub access token used to interact with GitHub APIs and start workflows. - Use https://github.com/settings/tokens/new to generate a token with full `repo` access. - [ ] Configure repository secrets: - Use https://github.com/{owner}/{repo}/settings/secrets/actions - Create a `DIFFBLUE_LICENSE_KEY` secret containing your license activation code. - Create a `DIFFBLUE_TOKEN` secret containing your access token. - [ ] Ensure that the project is correctly built before Diffblue Cover is invoked. - [ ] Assuming you made changes above, then navigate to the latest action and click "Re-run all jobs" - [ ] Enjoy some AI generated unit tests! See [Customizing GitHub Actions](https://docs.diffblue.com/customizing-github-actions) for ideas on further customization. --- .github/workflows/DiffblueCover.yml | 41 +++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/DiffblueCover.yml diff --git a/.github/workflows/DiffblueCover.yml b/.github/workflows/DiffblueCover.yml new file mode 100644 index 0000000..6e75f79 --- /dev/null +++ b/.github/workflows/DiffblueCover.yml @@ -0,0 +1,41 @@ +name: Diffblue Cover + +on: + pull_request: + +jobs: + Diffblue: + runs-on: ubuntu-latest + steps: + + - name: Checkout + uses: actions/checkout@v3 + with: + # The default GITHUB_TOKEN doesn't have the necessary permissions + # so a custom token should be used here with sufficient access. + token: ${{ secrets.DIFFBLUE_TOKEN }} + + - name: Setup Java + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'zulu' + + - name: Maven Install + run: mvn --batch-mode install + + - name: Diffblue Cover + uses: diffblue/cover-github-action@main + env: + GITHUB_TOKEN: ${{ secrets.DIFFBLUE_TOKEN }} + JVM_ARGS: -Xmx4096m + with: + # License key used to activate the installation + license-key: ${{ secrets.DIFFBLUE_LICENSE_KEY }} + # User name and email used to author commits + user-name: Diffblue CI + user-email: db-ci-platform@diffblue.com + # Integration test project lives in a subdir + working-directory: ./test/maven-project + # Add a differentiator based on the matrix + topic-id-differentiator: ${{ matrix.os }} From 17574c1af1380fe8e55adb5080540e184610f9d5 Mon Sep 17 00:00:00 2001 From: Rob Oxspring Date: Fri, 18 Aug 2023 11:36:45 +0100 Subject: [PATCH 2/3] FIX STUPID MISTAKE --- .github/workflows/DiffblueCover.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/DiffblueCover.yml b/.github/workflows/DiffblueCover.yml index 6e75f79..35a631e 100644 --- a/.github/workflows/DiffblueCover.yml +++ b/.github/workflows/DiffblueCover.yml @@ -35,7 +35,5 @@ jobs: # User name and email used to author commits user-name: Diffblue CI user-email: db-ci-platform@diffblue.com - # Integration test project lives in a subdir - working-directory: ./test/maven-project # Add a differentiator based on the matrix topic-id-differentiator: ${{ matrix.os }} From 94469c9c85ab22eca54164d1af98baae5c5cc9bc Mon Sep 17 00:00:00 2001 From: Diffblue CI Date: Fri, 18 Aug 2023 10:44:31 +0000 Subject: [PATCH 3/3] Added tests created with Diffblue Cover --- .../corebanking/CoreBankingDiffblueTest.java | 88 ++++++ .../CoreBankingExceptionDiffblueTest.java | 23 ++ .../account/AccountDiffblueTest.java | 270 ++++++++++++++++++ .../account/AccountExceptionDiffblueTest.java | 23 ++ .../client/ClientDiffblueTest.java | 85 ++++++ ...BalanceAboveOrEqualToZeroDiffblueTest.java | 57 ++++ .../rules/ComplianceRuleDiffblueTest.java | 124 ++++++++ .../ReadFromDBDiffblueTest.java | 60 ++++ .../BankTransactionDiffblueTest.java | 169 +++++++++++ .../CashTransactionDiffblueTest.java | 220 ++++++++++++++ .../transaction/TransactionDiffblueTest.java | 167 +++++++++++ .../TransactionExceptionDiffblueTest.java | 23 ++ .../ui/menu/AccountsMenuDiffblueTest.java | 42 +++ .../ui/menu/ClientsMenuDiffblueTest.java | 42 +++ .../ui/menu/ComplianceMenuDiffblueTest.java | 42 +++ ...BankingDataManagementMenuDiffblueTest.java | 53 ++++ .../ui/menu/MainMenuDiffblueTest.java | 22 ++ 17 files changed, 1510 insertions(+) create mode 100644 src/test/java/io/diffblue/corebanking/CoreBankingDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/CoreBankingExceptionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/account/AccountDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/account/AccountExceptionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/client/ClientDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleBalanceAboveOrEqualToZeroDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/datamanagement/ReadFromDBDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/transaction/BankTransactionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/transaction/CashTransactionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/transaction/TransactionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/transaction/TransactionExceptionDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/ui/menu/AccountsMenuDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/ui/menu/ClientsMenuDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/ui/menu/ComplianceMenuDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/ui/menu/CoreBankingDataManagementMenuDiffblueTest.java create mode 100644 src/test/java/io/diffblue/corebanking/ui/menu/MainMenuDiffblueTest.java diff --git a/src/test/java/io/diffblue/corebanking/CoreBankingDiffblueTest.java b/src/test/java/io/diffblue/corebanking/CoreBankingDiffblueTest.java new file mode 100644 index 0000000..886f03d --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/CoreBankingDiffblueTest.java @@ -0,0 +1,88 @@ +package io.diffblue.corebanking; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.List; +import org.junit.jupiter.api.Test; + +class CoreBankingDiffblueTest { + /** + * Methods under test: + * + * + */ + @Test + void testConstructor() { + // Arrange and Act + CoreBanking actualCoreBanking = new CoreBanking(); + List actualAccounts = actualCoreBanking.getAccounts(); + List actualClients = actualCoreBanking.getClients(); + + // Assert + assertTrue(actualAccounts.isEmpty()); + assertTrue(actualClients.isEmpty()); + } + + /** + * Method under test: {@link CoreBanking#purgeCoreBanking()} + */ + @Test + void testPurgeCoreBanking() throws TransactionException { + // Arrange + CoreBanking readFromDBResult = ReadFromDB.readFromDB(); + + // Act + readFromDBResult.purgeCoreBanking(); + + // Assert + assertTrue(readFromDBResult.getAccounts().isEmpty()); + assertTrue(readFromDBResult.getClients().isEmpty()); + } + + /** + * Method under test: {@link CoreBanking#openNewAccount(Client, long)} + */ + @Test + void testOpenNewAccount() throws TransactionException { + // Arrange + CoreBanking readFromDBResult = ReadFromDB.readFromDB(); + Client client = new Client("Dr Jane Doe"); + + // Act + Account actualOpenNewAccountResult = readFromDBResult.openNewAccount(client, 10L); + + // Assert + assertEquals("Current", actualOpenNewAccountResult.getAccountName()); + assertEquals(10L, actualOpenNewAccountResult.getCurrentBalance()); + Client client2 = actualOpenNewAccountResult.getClient(); + assertSame(client, client2); + assertEquals(Account.AccountState.OPEN, actualOpenNewAccountResult.getAccountState()); + assertEquals(1, client2.getAccounts().size()); + assertTrue(actualOpenNewAccountResult.getAccountStatement().getTransactions().isEmpty()); + assertEquals(7, readFromDBResult.getAccounts().size()); + } + + /** + * Method under test: {@link CoreBanking#registerNewClient(Client)} + */ + @Test + void testRegisterNewClient() throws TransactionException { + // Arrange + CoreBanking readFromDBResult = ReadFromDB.readFromDB(); + Client client = new Client("Dr Jane Doe"); + + // Act and Assert + assertSame(client, readFromDBResult.registerNewClient(client)); + assertEquals(4, readFromDBResult.getClients().size()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/CoreBankingExceptionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/CoreBankingExceptionDiffblueTest.java new file mode 100644 index 0000000..31d916b --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/CoreBankingExceptionDiffblueTest.java @@ -0,0 +1,23 @@ +package io.diffblue.corebanking; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.Test; + +class CoreBankingExceptionDiffblueTest { + /** + * Method under test: {@link CoreBankingException#CoreBankingException(String)} + */ + @Test + void testConstructor() { + // Arrange and Act + CoreBankingException actualCoreBankingException = new CoreBankingException("An error occurred"); + + // Assert + assertNull(actualCoreBankingException.getCause()); + assertEquals(0, actualCoreBankingException.getSuppressed().length); + assertEquals("An error occurred", actualCoreBankingException.getMessage()); + assertEquals("An error occurred", actualCoreBankingException.getLocalizedMessage()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/account/AccountDiffblueTest.java b/src/test/java/io/diffblue/corebanking/account/AccountDiffblueTest.java new file mode 100644 index 0000000..318d5b7 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/account/AccountDiffblueTest.java @@ -0,0 +1,270 @@ +package io.diffblue.corebanking.account; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; +import io.diffblue.corebanking.client.Client; +import io.diffblue.corebanking.transaction.CashTransaction; +import io.diffblue.corebanking.transaction.Transaction; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; +import org.junit.jupiter.api.Test; + +class AccountDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link Account.AccountStatement#AccountStatement(Account)} + *
  • {@link Account.AccountStatement#getTransactions()} + *
+ */ + @Test + void testAccountStatementConstructor() { + // Arrange, Act and Assert + assertTrue(((new Account(1234567890L, new Client("Dr Jane Doe"), 10L)).new AccountStatement()).getTransactions() + .isEmpty()); + } + + /** + * Method under test: {@link Account.AccountStatement#toString()} + */ + @Test + void testAccountStatementToString() { + // Arrange, Act and Assert + assertEquals("Account statement empty.", + ((new Account(1234567890L, new Client("Dr Jane Doe"), 10L)).new AccountStatement()).toString()); + } + + /** + * Method under test: {@link Account#Account(long, Client, long)} + */ + @Test + void testConstructor() { + // Arrange + Client client = new Client("Dr Jane Doe"); + + // Act + Account actualAccount = new Account(1234567890L, client, 10L); + + // Assert + assertEquals("Current", actualAccount.getAccountName()); + assertEquals(10L, actualAccount.getCurrentBalance()); + assertSame(client, actualAccount.getClient()); + assertEquals(1234567890L, actualAccount.getAccountNumber()); + assertEquals(Account.AccountState.OPEN, actualAccount.getAccountState()); + assertTrue(actualAccount.getAccountStatement().getTransactions().isEmpty()); + } + + /** + * Method under test: {@link Account#addToBalance(long)} + */ + @Test + void testAddToBalance() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + account.addToBalance(10L); + + // Assert + assertEquals(20L, account.getCurrentBalance()); + } + + /** + * Method under test: {@link Account#takeFromBalance(long)} + */ + @Test + void testTakeFromBalance() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + account.takeFromBalance(10L); + + // Assert + assertEquals(0L, account.getCurrentBalance()); + } + + /** + * Method under test: {@link Account#takeFromBalance(long)} + */ + @Test + void testTakeFromBalance2() throws AccountException { + // Arrange, Act and Assert + assertThrows(AccountException.class, + () -> (new Account(1234567890L, new Client("Dr Jane Doe"), 1L)).takeFromBalance(10L)); + } + + /** + * Method under test: {@link Account#setAccountName(String)} + */ + @Test + void testSetAccountName() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + account.setAccountName("Dr Jane Doe"); + + // Assert + assertEquals("Dr Jane Doe", account.getAccountName()); + } + + /** + * Method under test: {@link Account#closeAccount()} + */ + @Test + void testCloseAccount() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + account.closeAccount(); + + // Assert + assertEquals(Account.AccountState.CLOSED, account.getAccountState()); + } + + /** + * Method under test: {@link Account#addTransaction(Transaction)} + */ + @Test + void testAddTransaction() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + account.addTransaction(new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))); + + // Assert + assertEquals(1, account.getAccountStatement().getTransactions().size()); + } + + /** + * Method under test: {@link Account#addTransaction(Transaction)} + */ + @Test + void testAddTransaction2() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + java.sql.Date date = mock(java.sql.Date.class); + + // Act + account.addTransaction(new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))); + + // Assert + assertEquals(1, account.getAccountStatement().getTransactions().size()); + } + + /** + * Method under test: {@link Account#equals(Object)} + */ + @Test + void testEquals() { + // Arrange, Act and Assert + assertNotEquals(new Account(1234567890L, new Client("Dr Jane Doe"), 10L), null); + assertNotEquals(new Account(1234567890L, new Client("Dr Jane Doe"), 10L), "Different type to Account"); + } + + /** + * Method under test: {@link Account#equals(Object)} + */ + @Test + void testEquals2() { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals(account, account); + int expectedHashCodeResult = account.hashCode(); + assertEquals(expectedHashCodeResult, account.hashCode()); + } + + /** + * Method under test: {@link Account#equals(Object)} + */ + @Test + void testEquals3() { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + Account account2 = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals(account, account2); + int notExpectedHashCodeResult = account.hashCode(); + assertNotEquals(notExpectedHashCodeResult, account2.hashCode()); + } + + /** + * Method under test: {@link Account#equals(Object)} + */ + @Test + void testEquals4() { + // Arrange + Account account = new Account(3L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertNotEquals(account, new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + } + + /** + * Method under test: {@link Account#equals(Object)} + */ + @Test + void testEquals5() { + // Arrange + Account account = new Account(1234567890L, mock(Client.class), 10L); + Account account2 = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals(account, account2); + int notExpectedHashCodeResult = account.hashCode(); + assertNotEquals(notExpectedHashCodeResult, account2.hashCode()); + } + + /** + * Methods under test: + * + *
    + *
  • {@link Account#toString()} + *
  • {@link Account#getAccountName()} + *
  • {@link Account#getAccountNumber()} + *
  • {@link Account#getAccountState()} + *
  • {@link Account#getAccountStatement()} + *
  • {@link Account#getClient()} + *
  • {@link Account#getCurrentBalance()} + *
+ */ + @Test + void testToString() { + // Arrange + Client client = new Client("Dr Jane Doe"); + Account account = new Account(1234567890L, client, 10L); + + // Act + String actualToStringResult = account.toString(); + String actualAccountName = account.getAccountName(); + long actualAccountNumber = account.getAccountNumber(); + Account.AccountState actualAccountState = account.getAccountState(); + account.getAccountStatement(); + Client actualClient = account.getClient(); + + // Assert + assertEquals("Current", actualAccountName); + assertEquals(1234567890L, actualAccountNumber); + assertEquals(Account.AccountState.OPEN, actualAccountState); + assertSame(client, actualClient); + assertEquals(10L, account.getCurrentBalance()); + assertEquals( + "Account: | Acc #: 1234567890\t | Acc name: Current\t | Acc holder: Dr Jane Doe\t | Acc balance: 10\t | Acc" + + " state: OPEN\t |\n" + "Account statement empty.", + actualToStringResult); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/account/AccountExceptionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/account/AccountExceptionDiffblueTest.java new file mode 100644 index 0000000..d12032e --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/account/AccountExceptionDiffblueTest.java @@ -0,0 +1,23 @@ +package io.diffblue.corebanking.account; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.Test; + +class AccountExceptionDiffblueTest { + /** + * Method under test: {@link AccountException#AccountException(String)} + */ + @Test + void testConstructor() { + // Arrange and Act + AccountException actualAccountException = new AccountException("An error occurred"); + + // Assert + assertNull(actualAccountException.getCause()); + assertEquals(0, actualAccountException.getSuppressed().length); + assertEquals("An error occurred", actualAccountException.getMessage()); + assertEquals("An error occurred", actualAccountException.getLocalizedMessage()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/client/ClientDiffblueTest.java b/src/test/java/io/diffblue/corebanking/client/ClientDiffblueTest.java new file mode 100644 index 0000000..f232c14 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/client/ClientDiffblueTest.java @@ -0,0 +1,85 @@ +package io.diffblue.corebanking.client; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.account.AccountException; +import org.junit.jupiter.api.Test; + +class ClientDiffblueTest { + /** + * Methods under test: + * + *
    + *
  • {@link Client#Client(String)} + *
  • {@link Client#getAccounts()} + *
  • {@link Client#getClientName()} + *
+ */ + @Test + void testConstructor() { + // Arrange and Act + Client actualClient = new Client("Dr Jane Doe"); + actualClient.getAccounts(); + + // Assert + assertEquals("Dr Jane Doe", actualClient.getClientName()); + } + + /** + * Method under test: {@link Client#addAccount(Account)} + */ + @Test + void testAddAccount() { + // Arrange + Client client = new Client("Dr Jane Doe"); + + // Act + client.addAccount(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals(1, client.getAccounts().size()); + } + + /** + * Method under test: {@link Client#toString()} + */ + @Test + void testToString() { + // Arrange, Act and Assert + assertEquals("Client name: Dr Jane Doe\n", (new Client("Dr Jane Doe")).toString()); + } + + /** + * Method under test: {@link Client#toString()} + */ + @Test + void testToString2() { + // Arrange + Client client = new Client("Dr Jane Doe"); + client.addAccount(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act and Assert + assertEquals("Client name: Dr Jane Doe\n" + + "Account: | Acc #: 1234567890\t | Acc name: Current\t | Acc holder: Dr Jane Doe\t | Acc balance: 10\t | Acc" + + " state: OPEN\t |\n" + "Account statement empty.\n", client.toString()); + } + + /** + * Method under test: {@link Client#toString()} + */ + @Test + void testToString3() throws AccountException { + // Arrange + Account account = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + account.addTransaction(null); + + Client client = new Client("Dr Jane Doe"); + client.addAccount(account); + + // Act and Assert + assertEquals("Client name: Dr Jane Doe\n" + + "Account: | Acc #: 1234567890\t | Acc name: Current\t | Acc holder: Dr Jane Doe\t | Acc balance: 10\t | Acc" + + " state: OPEN\t |\n" + "null\n" + "\n", client.toString()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleBalanceAboveOrEqualToZeroDiffblueTest.java b/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleBalanceAboveOrEqualToZeroDiffblueTest.java new file mode 100644 index 0000000..91003e7 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleBalanceAboveOrEqualToZeroDiffblueTest.java @@ -0,0 +1,57 @@ +package io.diffblue.corebanking.compliance.rules; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import org.junit.jupiter.api.Test; + +class ComplianceRuleBalanceAboveOrEqualToZeroDiffblueTest { + /** + * Method under test: {@link ComplianceRuleBalanceAboveOrEqualToZero#validateAccountCompliance(Account)} + */ + @Test + void testValidateAccountCompliance() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero + .validateAccountCompliance(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals(1, complianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().size()); + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().isEmpty()); + } + + /** + * Method under test: {@link ComplianceRuleBalanceAboveOrEqualToZero#validateAccountCompliance(Account)} + */ + @Test + void testValidateAccountCompliance2() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero + .validateAccountCompliance(new Account(1234567890L, new Client("Dr Jane Doe"), -1L)); + + // Assert + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().isEmpty()); + assertEquals(1, complianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().size()); + } + + /** + * Method under test: default or parameterless constructor of {@link ComplianceRuleBalanceAboveOrEqualToZero} + */ + @Test + void testConstructor() { + // Arrange and Act + ComplianceRuleBalanceAboveOrEqualToZero actualComplianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Assert + assertTrue(actualComplianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().isEmpty()); + assertTrue(actualComplianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().isEmpty()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleDiffblueTest.java b/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleDiffblueTest.java new file mode 100644 index 0000000..c58e19b --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/compliance/rules/ComplianceRuleDiffblueTest.java @@ -0,0 +1,124 @@ +package io.diffblue.corebanking.compliance.rules; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import org.junit.jupiter.api.Test; + +class ComplianceRuleDiffblueTest { + /** + * Method under test: {@link ComplianceRule#addToNonCompliantAccounts(Account)} + */ + @Test + void testAddToNonCompliantAccounts() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero + .addToNonCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals(1, complianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().size()); + } + + /** + * Method under test: {@link ComplianceRule#addToNonCompliantAccounts(Account)} + */ + @Test + void testAddToNonCompliantAccounts2() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + complianceRuleBalanceAboveOrEqualToZero + .addToNonCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act and Assert + assertThrows(IllegalStateException.class, () -> complianceRuleBalanceAboveOrEqualToZero + .addToNonCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L))); + } + + /** + * Method under test: {@link ComplianceRule#addToCompliantAccounts(Account)} + */ + @Test + void testAddToCompliantAccounts() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero + .addToCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals(1, complianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().size()); + } + + /** + * Method under test: {@link ComplianceRule#addToCompliantAccounts(Account)} + */ + @Test + void testAddToCompliantAccounts2() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + complianceRuleBalanceAboveOrEqualToZero + .addToCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act and Assert + assertThrows(IllegalStateException.class, () -> complianceRuleBalanceAboveOrEqualToZero + .addToCompliantAccounts(new Account(1234567890L, new Client("Dr Jane Doe"), 10L))); + } + + /** + * Method under test: {@link ComplianceRule#removeFromComplianceLists(Account)} + */ + @Test + void testRemoveFromComplianceLists() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero + .removeFromComplianceLists(new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().isEmpty()); + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().isEmpty()); + } + + /** + * Method under test: {@link ComplianceRule#getNonCompliantAccounts()} + */ + @Test + void testGetNonCompliantAccounts() { + // Arrange, Act and Assert + assertTrue((new ComplianceRuleBalanceAboveOrEqualToZero()).getNonCompliantAccounts().isEmpty()); + } + + /** + * Method under test: {@link ComplianceRule#getCompliantAccounts()} + */ + @Test + void testGetCompliantAccounts() { + // Arrange, Act and Assert + assertTrue((new ComplianceRuleBalanceAboveOrEqualToZero()).getCompliantAccounts().isEmpty()); + } + + /** + * Method under test: {@link ComplianceRule#purgeAccounts()} + */ + @Test + void testPurgeAccounts() { + // Arrange + ComplianceRuleBalanceAboveOrEqualToZero complianceRuleBalanceAboveOrEqualToZero = new ComplianceRuleBalanceAboveOrEqualToZero(); + + // Act + complianceRuleBalanceAboveOrEqualToZero.purgeAccounts(); + + // Assert + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getCompliantAccounts().isEmpty()); + assertTrue(complianceRuleBalanceAboveOrEqualToZero.getNonCompliantAccounts().isEmpty()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/datamanagement/ReadFromDBDiffblueTest.java b/src/test/java/io/diffblue/corebanking/datamanagement/ReadFromDBDiffblueTest.java new file mode 100644 index 0000000..84b80b8 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/datamanagement/ReadFromDBDiffblueTest.java @@ -0,0 +1,60 @@ +package io.diffblue.corebanking.datamanagement; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.client.Client; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.List; +import org.junit.jupiter.api.Test; + +class ReadFromDBDiffblueTest { + /** + * Method under test: {@link ReadFromDB#readFromDB()} + */ + @Test + void testReadFromDB() throws TransactionException { + // Arrange and Act + CoreBanking actualReadFromDBResult = ReadFromDB.readFromDB(); + + // Assert + assertEquals(6, actualReadFromDBResult.getAccounts().size()); + List clients = actualReadFromDBResult.getClients(); + assertEquals(3, clients.size()); + Client getResult = clients.get(2); + assertEquals("Emily Simmons", getResult.getClientName()); + Client getResult2 = clients.get(1); + assertEquals("Jane Robbins", getResult2.getClientName()); + assertEquals(2, getResult2.getAccounts().size()); + assertEquals(1, getResult.getAccounts().size()); + Client getResult3 = clients.get(0); + assertEquals(3, getResult3.getAccounts().size()); + assertEquals("John Field", getResult3.getClientName()); + } + + /** + * Method under test: {@link ReadFromDB#readFromDB(CoreBanking)} + */ + @Test + void testReadFromDB2() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act + ReadFromDB.readFromDB(coreBanking); + + // Assert + assertEquals(6, coreBanking.getAccounts().size()); + List clients = coreBanking.getClients(); + assertEquals(3, clients.size()); + Client getResult = clients.get(2); + assertEquals("Emily Simmons", getResult.getClientName()); + Client getResult2 = clients.get(1); + assertEquals("Jane Robbins", getResult2.getClientName()); + assertEquals(2, getResult2.getAccounts().size()); + assertEquals(1, getResult.getAccounts().size()); + Client getResult3 = clients.get(0); + assertEquals(3, getResult3.getAccounts().size()); + assertEquals("John Field", getResult3.getClientName()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/transaction/BankTransactionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/transaction/BankTransactionDiffblueTest.java new file mode 100644 index 0000000..a18f2a0 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/transaction/BankTransactionDiffblueTest.java @@ -0,0 +1,169 @@ +package io.diffblue.corebanking.transaction; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.mock; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; +import org.junit.jupiter.api.Test; + +class BankTransactionDiffblueTest { + /** + * Method under test: {@link BankTransaction#BankTransaction(long, Date, Account, Account)} + */ + @Test + void testConstructor() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + BankTransaction actualBankTransaction = new BankTransaction(10L, date, sourceAcc, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals("1234567890", actualBankTransaction.getSource()); + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, actualBankTransaction.getTransactionState()); + assertSame(date, actualBankTransaction.getTransactionDate()); + assertEquals(10L, actualBankTransaction.getTransactionAmount()); + assertEquals("1234567890", actualBankTransaction.getTarget()); + } + + /** + * Method under test: {@link BankTransaction#BankTransaction(long, java.util.Date, Account, Account)} + */ + @Test + void testConstructor2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act + BankTransaction actualBankTransaction = new BankTransaction(10L, date, sourceAcc, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals("1234567890", actualBankTransaction.getSource()); + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, actualBankTransaction.getTransactionState()); + assertSame(date, actualBankTransaction.getTransactionDate()); + assertEquals(10L, actualBankTransaction.getTransactionAmount()); + assertEquals("1234567890", actualBankTransaction.getTarget()); + } + + /** + * Method under test: {@link BankTransaction#getSource()} + */ + @Test + void testGetSource() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals("1234567890", + (new BankTransaction(10L, date, sourceAcc, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getSource()); + } + + /** + * Method under test: {@link BankTransaction#getSource()} + */ + @Test + void testGetSource2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals("1234567890", + (new BankTransaction(10L, date, sourceAcc, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getSource()); + } + + /** + * Method under test: {@link BankTransaction#getTarget()} + */ + @Test + void testGetTarget() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals("1234567890", + (new BankTransaction(10L, date, sourceAcc, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTarget()); + } + + /** + * Method under test: {@link BankTransaction#getTarget()} + */ + @Test + void testGetTarget2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertEquals("1234567890", + (new BankTransaction(10L, date, sourceAcc, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTarget()); + } + + /** + * Method under test: {@link BankTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + BankTransaction bankTransaction = new BankTransaction(10L, date, sourceAcc, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + bankTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, bankTransaction.getTransactionState()); + } + + /** + * Method under test: {@link BankTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction2() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + // Act and Assert + assertThrows(TransactionException.class, () -> (new BankTransaction(Long.MAX_VALUE, date, sourceAcc, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).executeTransaction()); + } + + /** + * Method under test: {@link BankTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction3() throws TransactionException { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + Account sourceAcc = new Account(1234567890L, new Client("Dr Jane Doe"), 10L); + + BankTransaction bankTransaction = new BankTransaction(10L, date, sourceAcc, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + bankTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, bankTransaction.getTransactionState()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/transaction/CashTransactionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/transaction/CashTransactionDiffblueTest.java new file mode 100644 index 0000000..c4688da --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/transaction/CashTransactionDiffblueTest.java @@ -0,0 +1,220 @@ +package io.diffblue.corebanking.transaction; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; +import org.junit.jupiter.api.Test; + +class CashTransactionDiffblueTest { + /** + * Method under test: {@link CashTransaction#CashTransaction(long, Date, Account)} + */ + @Test + void testConstructor() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + CashTransaction actualCashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals("CASH", actualCashTransaction.getSource()); + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, actualCashTransaction.getTransactionState()); + assertSame(date, actualCashTransaction.getTransactionDate()); + assertEquals(10L, actualCashTransaction.getTransactionAmount()); + assertEquals("1234567890", actualCashTransaction.getTarget()); + } + + /** + * Method under test: {@link CashTransaction#CashTransaction(long, Date, Account)} + */ + @Test + void testConstructor2() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act + CashTransaction actualCashTransaction = new CashTransaction(-1L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals("1234567890", actualCashTransaction.getSource()); + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, actualCashTransaction.getTransactionState()); + assertSame(date, actualCashTransaction.getTransactionDate()); + assertEquals(-1L, actualCashTransaction.getTransactionAmount()); + assertEquals("CASH", actualCashTransaction.getTarget()); + } + + /** + * Method under test: {@link CashTransaction#CashTransaction(long, java.util.Date, Account)} + */ + @Test + void testConstructor3() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + + // Act + CashTransaction actualCashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Assert + assertEquals("CASH", actualCashTransaction.getSource()); + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, actualCashTransaction.getTransactionState()); + assertSame(date, actualCashTransaction.getTransactionDate()); + assertEquals(10L, actualCashTransaction.getTransactionAmount()); + assertEquals("1234567890", actualCashTransaction.getTarget()); + } + + /** + * Method under test: {@link CashTransaction#getSource()} + */ + @Test + void testGetSource() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals("CASH", + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getSource()); + } + + /** + * Method under test: {@link CashTransaction#getSource()} + */ + @Test + void testGetSource2() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals("1234567890", + (new CashTransaction(-1L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getSource()); + } + + /** + * Method under test: {@link CashTransaction#getSource()} + */ + @Test + void testGetSource3() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + + // Act and Assert + assertEquals("CASH", + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getSource()); + } + + /** + * Method under test: {@link CashTransaction#getTarget()} + */ + @Test + void testGetTarget() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals("1234567890", + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getTarget()); + } + + /** + * Method under test: {@link CashTransaction#getTarget()} + */ + @Test + void testGetTarget2() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals("CASH", + (new CashTransaction(-1L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getTarget()); + } + + /** + * Method under test: {@link CashTransaction#getTarget()} + */ + @Test + void testGetTarget3() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + + // Act and Assert + assertEquals("1234567890", + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).getTarget()); + } + + /** + * Method under test: {@link CashTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link CashTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction2() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + CashTransaction cashTransaction = new CashTransaction(-1L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link CashTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction3() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + CashTransaction cashTransaction = new CashTransaction(Long.MIN_VALUE, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.FAILED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link CashTransaction#executeTransaction()} + */ + @Test + void testExecuteTransaction4() throws TransactionException { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.executeTransaction(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, cashTransaction.getTransactionState()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/transaction/TransactionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/transaction/TransactionDiffblueTest.java new file mode 100644 index 0000000..e94b258 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/transaction/TransactionDiffblueTest.java @@ -0,0 +1,167 @@ +package io.diffblue.corebanking.transaction; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import io.diffblue.corebanking.account.Account; +import io.diffblue.corebanking.client.Client; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.Date; +import org.junit.jupiter.api.Test; + +class TransactionDiffblueTest { + /** + * Method under test: {@link Transaction#getTransactionAmount()} + */ + @Test + void testGetTransactionAmount() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals(10L, (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTransactionAmount()); + } + + /** + * Method under test: {@link Transaction#getTransactionAmount()} + */ + @Test + void testGetTransactionAmount2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + + // Act and Assert + assertEquals(10L, (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTransactionAmount()); + } + + /** + * Method under test: {@link Transaction#getTransactionDate()} + */ + @Test + void testGetTransactionDate() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertSame(date, (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTransactionDate()); + } + + /** + * Method under test: {@link Transaction#getTransactionState()} + */ + @Test + void testGetTransactionState() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + + // Act and Assert + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTransactionState()); + } + + /** + * Method under test: {@link Transaction#getTransactionState()} + */ + @Test + void testGetTransactionState2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + + // Act and Assert + assertEquals(Transaction.TransactionState.NOT_EXECUTED_YET, + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))) + .getTransactionState()); + } + + /** + * Method under test: {@link Transaction#setCurrentStateFailed()} + */ + @Test + void testSetCurrentStateFailed() throws TransactionException { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.setCurrentStateFailed(); + + // Assert + assertEquals(Transaction.TransactionState.FAILED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link Transaction#setCurrentStateFailed()} + */ + @Test + void testSetCurrentStateFailed2() throws TransactionException { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.setCurrentStateFailed(); + + // Assert + assertEquals(Transaction.TransactionState.FAILED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link Transaction#markTransactionAsExecuted()} + */ + @Test + void testMarkTransactionAsExecuted() { + // Arrange + Date date = Date.from(LocalDate.of(1970, 1, 1).atStartOfDay().atZone(ZoneOffset.UTC).toInstant()); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.markTransactionAsExecuted(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link Transaction#markTransactionAsExecuted()} + */ + @Test + void testMarkTransactionAsExecuted2() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + CashTransaction cashTransaction = new CashTransaction(10L, date, + new Account(1234567890L, new Client("Dr Jane Doe"), 10L)); + + // Act + cashTransaction.markTransactionAsExecuted(); + + // Assert + assertEquals(Transaction.TransactionState.EXECUTED, cashTransaction.getTransactionState()); + } + + /** + * Method under test: {@link Transaction#toString()} + */ + @Test + void testToString() { + // Arrange + java.sql.Date date = mock(java.sql.Date.class); + when(date.getTime()).thenReturn(10L); + + // Act + (new CashTransaction(10L, date, new Account(1234567890L, new Client("Dr Jane Doe"), 10L))).toString(); + + // Assert + verify(date).getTime(); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/transaction/TransactionExceptionDiffblueTest.java b/src/test/java/io/diffblue/corebanking/transaction/TransactionExceptionDiffblueTest.java new file mode 100644 index 0000000..7fc9e5b --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/transaction/TransactionExceptionDiffblueTest.java @@ -0,0 +1,23 @@ +package io.diffblue.corebanking.transaction; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.Test; + +class TransactionExceptionDiffblueTest { + /** + * Method under test: {@link TransactionException#TransactionException(String)} + */ + @Test + void testConstructor() { + // Arrange and Act + TransactionException actualTransactionException = new TransactionException("An error occurred"); + + // Assert + assertNull(actualTransactionException.getCause()); + assertEquals(0, actualTransactionException.getSuppressed().length); + assertEquals("An error occurred", actualTransactionException.getMessage()); + assertEquals("An error occurred", actualTransactionException.getLocalizedMessage()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/ui/menu/AccountsMenuDiffblueTest.java b/src/test/java/io/diffblue/corebanking/ui/menu/AccountsMenuDiffblueTest.java new file mode 100644 index 0000000..eb4e9be --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/ui/menu/AccountsMenuDiffblueTest.java @@ -0,0 +1,42 @@ +package io.diffblue.corebanking.ui.menu; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.ArrayList; +import org.junit.jupiter.api.Test; + +class AccountsMenuDiffblueTest { + /** + * Method under test: {@link AccountsMenu#AccountsMenu(CoreBanking)} + */ + @Test + void testConstructor() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act and Assert + assertSame((new AccountsMenu(coreBanking)).coreBanking, coreBanking); + } + + /** + * Method under test: {@link AccountsMenu#executeMenuOption(int)} + */ + @Test + void testExecuteMenuOption() { + // Arrange + CoreBanking coreBanking = mock(CoreBanking.class); + when(coreBanking.getAccounts()).thenReturn(new ArrayList<>()); + + // Act + (new AccountsMenu(coreBanking)).executeMenuOption(1); + + // Assert + verify(coreBanking).getAccounts(); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/ui/menu/ClientsMenuDiffblueTest.java b/src/test/java/io/diffblue/corebanking/ui/menu/ClientsMenuDiffblueTest.java new file mode 100644 index 0000000..8ff1141 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/ui/menu/ClientsMenuDiffblueTest.java @@ -0,0 +1,42 @@ +package io.diffblue.corebanking.ui.menu; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.ArrayList; +import org.junit.jupiter.api.Test; + +class ClientsMenuDiffblueTest { + /** + * Method under test: {@link ClientsMenu#ClientsMenu(CoreBanking)} + */ + @Test + void testConstructor() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act and Assert + assertSame((new ClientsMenu(coreBanking)).coreBanking, coreBanking); + } + + /** + * Method under test: {@link ClientsMenu#executeMenuOption(int)} + */ + @Test + void testExecuteMenuOption() { + // Arrange + CoreBanking coreBanking = mock(CoreBanking.class); + when(coreBanking.getClients()).thenReturn(new ArrayList<>()); + + // Act + (new ClientsMenu(coreBanking)).executeMenuOption(1); + + // Assert + verify(coreBanking).getClients(); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/ui/menu/ComplianceMenuDiffblueTest.java b/src/test/java/io/diffblue/corebanking/ui/menu/ComplianceMenuDiffblueTest.java new file mode 100644 index 0000000..415ec7d --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/ui/menu/ComplianceMenuDiffblueTest.java @@ -0,0 +1,42 @@ +package io.diffblue.corebanking.ui.menu; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.ArrayList; +import org.junit.jupiter.api.Test; + +class ComplianceMenuDiffblueTest { + /** + * Method under test: {@link ComplianceMenu#ComplianceMenu(CoreBanking)} + */ + @Test + void testConstructor() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act and Assert + assertSame((new ComplianceMenu(coreBanking)).coreBanking, coreBanking); + } + + /** + * Method under test: {@link ComplianceMenu#executeMenuOption(int)} + */ + @Test + void testExecuteMenuOption() { + // Arrange + CoreBanking coreBanking = mock(CoreBanking.class); + when(coreBanking.getAccounts()).thenReturn(new ArrayList<>()); + + // Act + (new ComplianceMenu(coreBanking)).executeMenuOption(1); + + // Assert + verify(coreBanking).getAccounts(); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/ui/menu/CoreBankingDataManagementMenuDiffblueTest.java b/src/test/java/io/diffblue/corebanking/ui/menu/CoreBankingDataManagementMenuDiffblueTest.java new file mode 100644 index 0000000..a1f8551 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/ui/menu/CoreBankingDataManagementMenuDiffblueTest.java @@ -0,0 +1,53 @@ +package io.diffblue.corebanking.ui.menu; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.client.Client; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import java.util.List; +import org.junit.jupiter.api.Test; + +class CoreBankingDataManagementMenuDiffblueTest { + /** + * Method under test: {@link CoreBankingDataManagementMenu#CoreBankingDataManagementMenu(CoreBanking)} + */ + @Test + void testConstructor() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act and Assert + assertSame((new CoreBankingDataManagementMenu(coreBanking)).coreBanking, coreBanking); + } + + /** + * Method under test: {@link CoreBankingDataManagementMenu#executeMenuOption(int)} + */ + @Test + void testExecuteMenuOption() throws TransactionException { + // Arrange + CoreBankingDataManagementMenu coreBankingDataManagementMenu = new CoreBankingDataManagementMenu( + ReadFromDB.readFromDB()); + + // Act + coreBankingDataManagementMenu.executeMenuOption(2); + + // Assert + CoreBanking coreBanking = coreBankingDataManagementMenu.coreBanking; + assertEquals(6, coreBanking.getAccounts().size()); + List clients = coreBanking.getClients(); + assertEquals(3, clients.size()); + Client getResult = clients.get(2); + assertEquals("Emily Simmons", getResult.getClientName()); + Client getResult2 = clients.get(1); + assertEquals("Jane Robbins", getResult2.getClientName()); + assertEquals(2, getResult2.getAccounts().size()); + assertEquals(1, getResult.getAccounts().size()); + Client getResult3 = clients.get(0); + assertEquals(3, getResult3.getAccounts().size()); + assertEquals("John Field", getResult3.getClientName()); + } +} + diff --git a/src/test/java/io/diffblue/corebanking/ui/menu/MainMenuDiffblueTest.java b/src/test/java/io/diffblue/corebanking/ui/menu/MainMenuDiffblueTest.java new file mode 100644 index 0000000..b2a2636 --- /dev/null +++ b/src/test/java/io/diffblue/corebanking/ui/menu/MainMenuDiffblueTest.java @@ -0,0 +1,22 @@ +package io.diffblue.corebanking.ui.menu; + +import static org.junit.jupiter.api.Assertions.assertSame; +import io.diffblue.corebanking.CoreBanking; +import io.diffblue.corebanking.datamanagement.ReadFromDB; +import io.diffblue.corebanking.transaction.TransactionException; +import org.junit.jupiter.api.Test; + +class MainMenuDiffblueTest { + /** + * Method under test: {@link MainMenu#MainMenu(CoreBanking)} + */ + @Test + void testConstructor() throws TransactionException { + // Arrange + CoreBanking coreBanking = ReadFromDB.readFromDB(); + + // Act and Assert + assertSame((new MainMenu(coreBanking)).coreBanking, coreBanking); + } +} +