@Test
  public void shouldNotCluster() {
    state.recording().startRecording();
    presenter.setZoom(4000);

    assertThat(presenter.getTimelineView()).contains(measurements.get(3), measurements.get(2));
  }
 @Test
 public void shouldAllowToZoomOutAfterMoreDataArrives() {
   state.recording().startRecording();
   presenter.setZoom(8000);
   presenter.getTimelineView();
   triggerMeasurement(measurement1);
   assertThat(presenter.canZoomOut()).isTrue();
 }
  @Test
  public void shouldShowLastNMillis() {
    state.recording().startRecording();
    presenter.setZoom(100);

    List<Measurement> result = presenter.getTimelineView();

    assertThat(result).contains(measurements.get(3));
    assertThat(result).excludes(measurements.get(2));
  }
  @Test
  public void shouldAppendWithoutRecalculating() {
    state.recording().startRecording();
    presenter.setZoom(4000);
    presenter.getTimelineView();
    presenter.sessionManager = mockSessionManager();

    triggerMeasurement(measurement1);
    List<Measurement> result = presenter.getTimelineView();

    assertThat(result).contains(measurement1, measurements.get(3)).excludes(measurements.get(2));
  }
 @Test
 public void shouldNotAllowToZoomOutTooMuch() {
   presenter.setZoom(100000000);
   assertThat(presenter.canZoomOut()).isFalse();
 }
 @Test
 public void shouldAllowToZoomOut() {
   state.recording().startRecording();
   presenter.setZoom(2000);
   assertThat(presenter.canZoomOut()).isTrue();
 }