@Test
  public void shouldPutCoffeeStatusMessagesInQueue() {
    CoffeeStatus coffeeStatus1 = new CoffeeStatus();
    CoffeeStatus coffeeStatus2 = new CoffeeStatus();
    coffeeStatusProcessor.coffeeStatus(coffeeStatus1);
    coffeeStatusProcessor.coffeeStatus(coffeeStatus2);

    Assert.assertThat(coffeeStatusProcessor.getCoffeeStatusList().size(), is(2));
  }
 @Test
 public void shouldNotClearStatusWhenIOExceptionThrown() throws Exception {
   try {
     when(mockHttpClient.execute(Matchers.<HttpUriRequest>any())).thenThrow(IOException.class);
     updateStatusAndPost(new CoffeeStatus());
     Assert.fail("No exception thrown");
   } catch (IOException e) {
     Assert.assertThat(coffeeStatusProcessor.getCoffeeStatusList().size(), is(1));
   }
 }
 private void updateStatusAndPost(CoffeeStatus coffeeStatus) throws Exception {
   coffeeStatusProcessor.coffeeStatus(coffeeStatus);
   Assert.assertThat(coffeeStatusProcessor.getCoffeeStatusList().size(), is(1));
   HeartbeatEvent heartbeatEvent = new HeartbeatEvent();
   coffeeStatusProcessor.heartbeatEvent(heartbeatEvent);
 }
  @Test
  public void shouldClearQueueAfterHeartbeat() throws Exception {
    updateStatusAndPost(new CoffeeStatus());

    Assert.assertThat(coffeeStatusProcessor.getCoffeeStatusList().size(), is(0));
  }