@Test
public void executeWithTimeSavesAllProjectsSince() throws Exception {

    // given
    var lastExecuteTime = LocalDateTime.now(clock);
    var expectedProjects = List.of(projectMock);
    given(projectReaderMock.getAllProjectsSince(lastExecuteTime))
            .willReturn(expectedProjects);
    given(normalizerMock.normalize(expectedProjects))
            .willReturn(expectedProjects);
    // when
    projectUpdater.execute(lastExecuteTime);
    // then
    verify(projectServiceMock).saveAll(projectListCaptor.capture());
    var actualProjects = projectListCaptor.getValue();
    assertThat(actualProjects).containsExactlyElementsOf(expectedProjects);
}