private void assertOnlyLastTwoRequestsLeft(RequestJournal journal) { assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging1")).build()), is(0)); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging2")).build()), is(1)); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging3")).build()), is(1)); }
@Test public void resettingTheJournalClearsAllEntries() throws Exception { Mockery context = new Mockery(); LoggedRequest loggedRequest = createFrom(aRequest(context).withUrl("/for/logging").build()); RequestJournal journal = new InMemoryRequestJournal(Optional.of(1)); journal.requestReceived(loggedRequest); assertThat(journal.countRequestsMatching(everything()), is(1)); journal.reset(); assertThat(journal.countRequestsMatching(everything()), is(0)); }
@Test public void returnsAllLoggedRequestsWhenNoJournalSizeLimit() { RequestJournal journal = new InMemoryRequestJournal(Optional.<Integer>absent()); journal.requestReceived(request1); journal.requestReceived(request1); journal.requestReceived(request2); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging1")).build()), is(2)); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging2")).build()), is(1)); }
@Test public void discardsOldRequestsWhenJournalSizeIsLimited() throws Exception { RequestJournal journal = new InMemoryRequestJournal(Optional.of(2)); journal.requestReceived(request1); journal.requestReceived(request2); assertThat(journal.countRequestsMatching(everything()), is(2)); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging1")).build()), is(1)); assertThat( journal.countRequestsMatching(getRequestedFor(urlEqualTo("/logging2")).build()), is(1)); journal.requestReceived(request3); assertOnlyLastTwoRequestsLeft(journal); }