@Test
public void shouldRemoveInstancesOnlyOnce() throws Exception {

    final Remove sut = new Remove(
            debt(thomas, amount(2.5), simon)
    );
    final ArrayList<Debt> existingTransactions = new ArrayList<>(
            Arrays.asList(
                    debt(thomas, amount(2.5), simon),
                    debt(thomas, amount(2.5), simon)
            )
    );
    sut.applyTo(existingTransactions);
    assertThat(existingTransactions, allOf(
            iterableWithSize(1),
            hasItem(
                    debt(thomas, amount(2.5), simon)
            )
    ));
}