package de.uni_siegen.wineme.come_in.thumbnailer.test;
import java.io.File;
import java.io.IOException;
import de.uni_siegen.wineme.come_in.thumbnailer.ThumbnailerException;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.JODWordConverterThumbnailer;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.NativeImageThumbnailer;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.OpenOfficeThumbnailer;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.PDFBoxThumbnailer;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.ScratchThumbnailer;
import de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.Thumbnailer;
import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Failures due to a file type mismatch
* must emit a ThumbnailerException
*
* @author Benjamin
*
*/
public class ThumbnailersFailingTest extends MyTestCase {
Thumbnailer currentThumbnailer;
public void assert_fail_generation(File input) throws IOException
{
assertFileExists("Input file does not exist", input);
File output = null;
try {
output = File.createTempFile("test-tmp", ".png");
} catch (IOException e1) {
fail("Could not create Temp file");
}
currentThumbnailer.setImageSize(160, 120, 0);
try {
currentThumbnailer.generateThumbnail(input, output);
} catch (ThumbnailerException e) {
output.delete();
return; // OK
}
fail("No Fail-Exception was thrown, but the input file is invalid for this thumbnailer. Output: " + output.getAbsolutePath());
}
@After
public void tearDown()
{
try {
if (currentThumbnailer != null)
currentThumbnailer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testFailingScratch() throws Throwable
{
currentThumbnailer = new ScratchThumbnailer();
File input = new File(TESTFILES_DIR + "test.txt");
assert_fail_generation(input);
}
@Test
public void testFailingJOD() throws IOException
{
currentThumbnailer = new JODWordConverterThumbnailer();
File input = new File(TESTFILES_DIR + "test.sb");
assert_fail_generation(input);
}
@Test
public void testFailingOOo() throws IOException
{
currentThumbnailer = new OpenOfficeThumbnailer();
File input = new File(TESTFILES_DIR + "test.jpg");
assert_fail_generation(input);
input = new File(TESTFILES_DIR + "do_not_work_yet" + File.separatorChar + "test.zip");
assert_fail_generation(input);
}
@Test
public void testFailingPDFBox() throws IOException
{
currentThumbnailer = new PDFBoxThumbnailer();
File input = new File(TESTFILES_DIR + "test.jpg");
assert_fail_generation(input);
}
@Test
public void testFailingNativeImage() throws IOException
{
currentThumbnailer = new NativeImageThumbnailer();
File input = new File(TESTFILES_DIR + "test.doc");
assert_fail_generation(input);
}
}