Project: aranea
package no.dusken.aranea.util;
 
import no.dusken.aranea.model.Image; 
import no.dusken.aranea.service.StoreImageService; 
import org.junit.Before; 
import org.junit.Test; 
import org.mockito.Mockito; 
 
import javax.imageio.ImageIO; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
 
import static junit.framework.Assert.assertEquals; 
import static org.junit.Assert.assertTrue; 
import static org.mockito.Mockito.mock; 
 
/**
 * @author Marvin B. Lillehaug <[email protected]
 */
 
public class TestImageUtils { 
 
    private ImageUtils imageUtils; 
    private StoreImageService storeImageService; 
 
    @Before 
    public void setUp(){ 
        imageUtils = new ImageUtils(); 
        imageUtils.setImageDirectory(new File("/tmp")); 
        storeImageService = mock(StoreImageService.class); 
        imageUtils.setStoreImageService(storeImageService); 
        imageUtils.setPDF_HEIGHT(800); 
    } 
 
    @Test 
    public void testResize() throws Exception { 
        // get the file locally 
        File originalFile = new File("src/test/resources/testImage.jpg"); 
        assertTrue("Could not read test image", originalFile.exists() && originalFile.canRead()); 
 
        File newFile = imageUtils.resizeImage(originalFile, 2030); 
        // read the new file with 
        BufferedImage newImage = ImageIO.read(newFile); 
        assertEquals("Width is wrong"20, newImage.getWidth()); 
        assertEquals("Height is wrong"20, newImage.getHeight()); 
 
        newFile = imageUtils.resizeImage(originalFile, 3025); 
        // read the new file with 
        newImage = ImageIO.read(newFile); 
        assertEquals("Width is wrong"25, newImage.getWidth()); 
        assertEquals("Height is wrong"25, newImage.getHeight()); 
        newFile.delete(); 
    } 
 
    @Test 
    public void testMakePdfThumbnail() throws IOException { 
        File originalFile = new File("src/test/resources/testPdf.pdf"); 
        assertTrue("Could not read test pdf", originalFile.exists() && originalFile.canRead()); 
        File ifile = new File("/tmp/tmp/testPdf.pdf.png"); 
        Image mockimage = mock(Image.class); 
        Mockito.when(mockimage.getWidth()).thenReturn(618); 
        Mockito.when(mockimage.getHeight()).thenReturn(800); 
        Mockito.when(mockimage.getUrl()).thenReturn("/tmp/testPdf.pdf.png"); 
        Mockito.when(storeImageService.createImage(ifile)).thenReturn(mockimage); 
 
        Image image = imageUtils.makeThumbnail(originalFile); 
        assertEquals("Image object has wrong height"800, image.getHeight().intValue()); 
        assertEquals("Image object has wrong width"618, image.getWidth().intValue()); 
        File file = imageUtils.getImageFile(image); 
        BufferedImage newImage = ImageIO.read(file); 
        assertEquals("Image file has wrong height"800, newImage.getHeight()); 
        assertEquals("Image file has wrong width"618, newImage.getWidth()); 
        file.delete(); 
        ifile.delete(); 
    } 
 
}