@Test
public void giveUserAccessUntilSetsEndTimeWhenUserHasActiveAccess() {

    // given
    var expectedStartTime = LocalDateTime.now(clock).minus(1L, ChronoUnit.DAYS);
    var initialEndTime = LocalDateTime.now(clock).plus(10L, ChronoUnit.MINUTES);
    var expectedEndTime = LocalDateTime.now(clock).plus(20L, ChronoUnit.MINUTES);
    given(userMock.getLatestAccessInterval()).willReturn(Optional.of(accessIntervalMock));
    given(accessIntervalMock.getStartTime()).willReturn(expectedStartTime);
    given(accessIntervalMock.getEndTime()).willReturn(initialEndTime);
    // when
    var actualUser = accessService.giveUserAccessUntil(userMock, expectedEndTime);
    // then
    assertThat(actualUser).isEqualTo(userMock);;
    verify(accessIntervalMock).setEndTime(expectedEndTime);
    verify(intervalRepo).save(accessIntervalMock);
    verify(userAccessEventHandlerMock).onAccessChanged(userMock, accessIntervalMock, initialEndTime);
}