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/0cb1d891fb778e3b73c9765952cb2a58 to your computer and use it in GitHub Desktop.

Select an option

Save trikitrok/0cb1d891fb778e3b73c9765952cb2a58 to your computer and use it in GitHub Desktop.
package bank.tests.integration.roles;
// some ommited imports...
public abstract class TransactionsRepositoryRoleTest {
protected TransactionsRepository repository;
private List<Transaction> initialTransactions;
@Before
public void setup() throws ParseException {
repository = createRepository();
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/2021").build();
repository.save(transaction);
assertThat(readAllTransactions(), is(add(initialTransactions, transaction)));
}
@Test
public void transactions_can_be_retrieved() {
assertThat(repository.retrieveAll(), is(initialTransactions));
}
protected abstract TransactionsRepository createRepository();
protected abstract List<Transaction> readAllTransactions();
protected abstract void prepareData(List<Transaction> transactions);
private List<Transaction> add(List<Transaction> transactions, Transaction transaction) {
List<Transaction> result = new ArrayList<>(transactions);
result.add(transaction);
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment