package eu.europeana.cloud.service.dps.storm.topologies.ic.converter.utils;
import eu.europeana.cloud.service.dps.storm.topologies.ic.converter.utlis.ImageMagicHelper;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
* Created by Tarek on 18/8/2016.
*/
public class ImageMagicHelperTest {
private ImageMagicHelper imageMagicHelper;
private static final String INPUT_FILE = "path/inputFileName.jpg";
private static final String OUTPUT_FILE = "path/outputFileName.tiff";
private static final String IMAGE_MAGIC_CONVERT = "magick";
private static final String IMAGE_MAGIC_CONVERT_CONSOLE_COMMAND_WITHOUT_PROPERTIES = "magick path/inputFileName.jpg path/outputFileName.tiff";
private static final String IMAGE_MAGIC_CONVERT_CONSOLE_COMMAND_WITH_PROPERTIES = "magick path/inputFileName.jpg path/outputFileName.tiff -flush_period 1024 Clayers=28 -rate 0.0000001";
@Before
public void prepare() {
imageMagicHelper = new ImageMagicHelper();
}
@Test
public void testCompressCommandWithoutProperties() {
String command = imageMagicHelper.constructCommand(IMAGE_MAGIC_CONVERT, INPUT_FILE, OUTPUT_FILE, null);
assertEquals(command, IMAGE_MAGIC_CONVERT_CONSOLE_COMMAND_WITHOUT_PROPERTIES);
}
@Test
public void testCompressCommandWithProperties() {
List<String> properties = buildProperties();
String command = imageMagicHelper.constructCommand(IMAGE_MAGIC_CONVERT, INPUT_FILE, OUTPUT_FILE, properties);
assertEquals(command, IMAGE_MAGIC_CONVERT_CONSOLE_COMMAND_WITH_PROPERTIES);
}
@Test
public void testCompressCommandWithNullInputFile() {
String command = imageMagicHelper.constructCommand(IMAGE_MAGIC_CONVERT, null, OUTPUT_FILE, buildProperties());
assertNull(command);
}
@Test
public void testCompressCommandWithNullOutputFile() {
String command = imageMagicHelper.constructCommand(IMAGE_MAGIC_CONVERT, INPUT_FILE, null, buildProperties());
assertNull(command);
}
@Test
public void testCompressCommandWithNullFiles() {
String command = imageMagicHelper.constructCommand(IMAGE_MAGIC_CONVERT, null, null, buildProperties());
assertNull(command);
}
private List<String> buildProperties() {
List<String> properties = new ArrayList<String>();
properties.add("-flush_period 1024");
properties.add("Clayers=28");
properties.add("-rate 0.0000001");
return properties;
}
}