Skip to content

Instantly share code, notes, and snippets.

@trikitrok
Last active June 30, 2024 13:42
Show Gist options
  • Select an option

  • Save trikitrok/14dd372d5cf8f70c6d7d3fc115afd04c to your computer and use it in GitHub Desktop.

Select an option

Save trikitrok/14dd372d5cf8f70c6d7d3fc115afd04c to your computer and use it in GitHub Desktop.
package bank.tests.integration;
// some ommited imports...
public class FileTransactionsRepositoryTest {
private static final String TRANSACTIONS_FILE = "src/test/resources/initial_transactions.txt";
private TransactionsFile transactionsFile;
private TransactionsRepository repository;
private List<Transaction> initialTransactions;
@Before
public void setup() throws ParseException {
transactionsFile = new TransactionsFile(TRANSACTIONS_FILE);
repository = new FileTransactionsRepository(TRANSACTIONS_FILE);
initialTransactions = Arrays.asList(
aTransaction().withDeposit(100).on("10/10/2021").build(),
aTransaction().withWithdrawal(50).on("15/10/2021").build());
prepareData(initialTransactions);
}
@Test
public void a_transaction_can_be_saved() throws ParseException {
Transaction transaction = aTransaction().withDeposit(500).on("25/10/2022").build();
repository.save(transaction);
assertThat(repository.retrieveAll(), is(addTo(initialTransactions, transaction)));
}
@Test
public void transactions_can_be_retrieved() {
assertThat(repository.retrieveAll(), is(initialTransactions));
}
private void prepareData(List<Transaction> transactions) {
try {
transactionsFile.clean();
transactionsFile.append(transactions);
} catch (IOException e) {
System.err.println("Error preparing transaction data in tests: " + e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment