package de.is24.infrastructure.gridfs.http.gridfs.scheduling; import de.is24.infrastructure.gridfs.http.mongo.MongoPrimaryDetector; import de.is24.infrastructure.gridfs.http.storage.FileStorageService; import org.apache.commons.lang.time.DateUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import java.util.Date; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class DeleteFilesJobTest { public static final int CONFIGURED_WAIT = 6; @Mock private MongoPrimaryDetector primaryDetectorMock; @Mock private FileStorageService fileStorageServiceMock; private DeleteFilesJob deleteFilesJob; private final Date testStart = new Date(); @Before public void setUp() throws Exception { deleteFilesJob = new DeleteFilesJob(fileStorageServiceMock, primaryDetectorMock, CONFIGURED_WAIT); } @Test public void doNothingIfNotPrimary() throws Exception { when(primaryDetectorMock.isPrimary()).thenReturn(false); deleteFilesJob.deleteFilesMarkedAsDeleted(testStart); verifyZeroInteractions(fileStorageServiceMock); } @Test public void deleteFilesBeforeConfiguredWaitOnPrimary() throws Exception { when(primaryDetectorMock.isPrimary()).thenReturn(true); deleteFilesJob.deleteFilesMarkedAsDeleted(testStart); verify(fileStorageServiceMock).removeFilesMarkedAsDeletedBefore(DateUtils.addMinutes(testStart, -CONFIGURED_WAIT)); } }