@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 shouldUseOnlyLastCoffeeStatusForUpdates() throws Exception { CoffeeStatus coffeeStatus1 = new CoffeeStatus(); CoffeeStatus coffeeStatus2 = new CoffeeStatus(); coffeeStatus2.cupsRemaining = 999; coffeeStatus2.carafePresent = true; coffeeStatus2.lastBrewed = 888; coffeeStatusProcessor.coffeeStatus(coffeeStatus1); coffeeStatusProcessor.coffeeStatus(coffeeStatus2); HeartbeatEvent heartbeatEvent = new HeartbeatEvent(); coffeeStatusProcessor.heartbeatEvent(heartbeatEvent); ArgumentCaptor<HttpPost> httpPostArgumentCaptor = ArgumentCaptor.forClass(HttpPost.class); verify(mockHttpClient, times(1)).execute(httpPostArgumentCaptor.capture()); HttpPost httpPost = httpPostArgumentCaptor.getValue(); String content = IOUtils.toString(httpPost.getEntity().getContent()); String carafePresentString = coffeeStatusProcessor.getCarafePresentName() + "=" + Boolean.toString(coffeeStatus2.carafePresent); String cupsRemainingString = coffeeStatusProcessor.getCupsRemainingName() + "=" + String.valueOf(coffeeStatus2.cupsRemaining); String lastBrewedString = coffeeStatusProcessor.getLastBrewedName() + "=" + String.valueOf(coffeeStatus2.lastBrewed); Assert.assertThat(content, containsString(carafePresentString)); Assert.assertThat(content, containsString(cupsRemainingString)); Assert.assertThat(content, containsString(lastBrewedString)); }
private void updateStatusAndPost(CoffeeStatus coffeeStatus) throws Exception { coffeeStatusProcessor.coffeeStatus(coffeeStatus); Assert.assertThat(coffeeStatusProcessor.getCoffeeStatusList().size(), is(1)); HeartbeatEvent heartbeatEvent = new HeartbeatEvent(); coffeeStatusProcessor.heartbeatEvent(heartbeatEvent); }