    @Test
    public void testIncrementBidOverReserveFromBelowReserve() {

        driver.run(new StartAuction(auction), new PlaceBid(500, bidder1));

        Outcome<AuctionEvent, AuctionState> outcome = driver.run(new PlaceBid(4000, bidder1));

        assertThat(outcome.events(), allOf(
                hasItem(bidPlaced(bidder1, 2000, 4000)),
                hasSize(1)
        ));
        assertThat(outcome.state().getBiddingHistory(), allOf(
                hasItem(bid(bidder1, 2000, 4000)),
                hasSize(1)
        ));
        assertThat(outcome.getReplies(), hasItem(reply(PlaceBidStatus.ACCEPTED, 2000, bidder1)));
    }