package eu.europeana.cloud.service.dps.storm.topologies.ic.converter.utils;
import eu.europeana.cloud.service.dps.storm.topologies.ic.converter.utlis.KakaduHelper;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
/**
* Created by Tarek on 9/3/2015.
*/
public class KakaduHelperTest {
private KakaduHelper kakaduHelper;
private static final String INPUT_FILE = "path/inputFileName.ext";
private static final String OUTPUT_FILE = "path/outputFileName.ext";
private static final String KAKADU_COMPRESS = "kdu_compress";
private static final String KAKADU_COMPRESS_CONSOLE_COMMAND_WITHOUT_PROPERTIES = "kdu_compress -i path/inputFileName.ext -o path/outputFileName.ext";
private static final String KAKADU_COMPRESS_CONSOLE_COMMAND_WITH_PROPERTIES = "kdu_compress -i path/inputFileName.ext -o path/outputFileName.ext -flush_period 1024 Clayers=28 -rate 0.0000001";
@Before
public void prepare() {
kakaduHelper = new KakaduHelper();
}
@Test
public void testCompressCommandWithoutProperties() {
String compressCommand = kakaduHelper.constructCommand(KAKADU_COMPRESS, INPUT_FILE, OUTPUT_FILE, null);
assertEquals(compressCommand, KAKADU_COMPRESS_CONSOLE_COMMAND_WITHOUT_PROPERTIES);
}
@Test
public void testCompressCommandWithProperties() {
List<String> properties = buildProperties();
String compressCommand = kakaduHelper.constructCommand(KAKADU_COMPRESS, INPUT_FILE, OUTPUT_FILE, properties);
assertEquals(compressCommand, KAKADU_COMPRESS_CONSOLE_COMMAND_WITH_PROPERTIES);
}
@Test
public void testCompressCommandWithNullInputFile() {
String compressCommand = kakaduHelper.constructCommand(KAKADU_COMPRESS, null, OUTPUT_FILE, buildProperties());
assertNull(compressCommand);
}
@Test
public void testCompressCommandWithNullOutputFile() {
String compressCommand = kakaduHelper.constructCommand(KAKADU_COMPRESS, INPUT_FILE, null, buildProperties());
assertNull(compressCommand);
}
@Test
public void testCompressCommandWithNullFiles() {
String compressCommand = kakaduHelper.constructCommand(KAKADU_COMPRESS, null, null, buildProperties());
assertNull(compressCommand);
}
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;
}
}