package project.latex.balloon.ssdv;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.File;
import static org.junit.Assert.*;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
*
* @author will
*/
public class DirectorySsdvImageSourceTest {
private DirectorySsdvImageSource directorySsdvImageSource;
@Test
public void testGetLastModifiedImageReturnsLastModifiedIfImagesAvailable() {
ClassLoader classLoader = getClass().getClassLoader();
String testImagesFolderPath = classLoader.getResource(
"project/latex/balloon/writer/camera/testImagesFolder").getFile();
directorySsdvImageSource = new DirectorySsdvImageSource(testImagesFolderPath);
File testImage = new File(testImagesFolderPath + File.separator + "testImage.png");
testImage.setLastModified(10000);
File testImage2 = new File(testImagesFolderPath + File.separator + "testImage2.png");
testImage2.setLastModified(0);
File latest = directorySsdvImageSource.getLastModifiedImage();
assertEquals("testImage.png", latest.getName());
testImage2.setLastModified(20000);
latest = directorySsdvImageSource.getLastModifiedImage();
assertEquals("testImage2.png", latest.getName());
}
@Test
public void testGetLastModifiedImageReturnsNullIfNoImagesAvailable() {
File imagesDirectory = new File(System.getProperty("java.io.tmpdir") + File.separator + "emptyFolder");
if (!imagesDirectory.exists()) {
imagesDirectory.mkdir();
}
directorySsdvImageSource = new DirectorySsdvImageSource(imagesDirectory.getAbsolutePath());
File latest = directorySsdvImageSource.getLastModifiedImage();
assertEquals(null, latest);
}
@Test
public void testDeleteAllFilesInDirectoryDeletesAllFiles() {
File imagesDirectory = mock(File.class);
File[] images = new File[2];
File image1 = mock(File.class);
File image2 = mock(File.class);
images[0] = image1;
images[1] = image2;
when(imagesDirectory.listFiles()).thenReturn(images);
directorySsdvImageSource = new DirectorySsdvImageSource(imagesDirectory);
directorySsdvImageSource.deleteAllFilesInDirectory();
verify(image1).delete();
verify(image2).delete();
}
}