### Question:
InformationCollector implements EventListener, ChangeLevelListener, Information { @Override public String getMessage() { List<String> result = new LinkedList<>(); String message; do { message = infoAboutLevelChangedMustBeLast(pool.pollFirst()); if (message != null) { result.add(message); } } while (message != null); if (result.isEmpty()) { return null; } return result.toString().replace("[", "").replace("]", ""); } InformationCollector(PlayerScores playerScores); @Override void event(Object event); @Override String getMessage(); @Override void levelChanged(LevelProgress progress); void setInfo(String information); String popLastMessages();  }### Answer:
@Test public void shouldIgnoreZeroPenalty() { when(playerScores.getScore()).thenReturn(0); snakeEatStone(); snakeIsDead(); assertEquals(null, collector.getMessage()); assertNull(collector.getMessage()); }
@Test public void shouldGetPenaltyToZero() { when(playerScores.getScore()).thenReturn(13).thenReturn(3).thenReturn(3).thenReturn(0); snakeEatStone(); snakeIsDead(); assertEquals("-10, -3", collector.getMessage()); assertNull(collector.getMessage()); }