package org.esa.beam.smos.ee2netcdf.visat;
import com.bc.ceres.binding.ConversionException;
import com.vividsolutions.jts.geom.Geometry;
import org.esa.beam.smos.ee2netcdf.ExportParameter;
import org.esa.beam.smos.gui.BindingConstants;
import org.esa.beam.util.converters.JtsGeometryConverter;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
public class ConverterSwingWorkerTest {
private ExportParameter exportParameter;
@Before
public void setUp() throws Exception {
exportParameter = new ExportParameter();
}
@Test
public void testCreateMap_sourceDirectory() {
final File expectedSourceDir = new File("/home/tom");
exportParameter.setSourceDirectory(expectedSourceDir);
final HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
final String sourceDirectory = (String) parameterMap.get("sourceProductPaths");
final String absolutePath = expectedSourceDir.getAbsolutePath();
assertEquals(absolutePath + File.separator + "*.zip," + absolutePath + File.separator + "*.dbl", sourceDirectory);
}
@Test
public void testCreateMap_sourceDirectory_NotAddedWhenSingleProductSelected() {
final File expectedSourceDir = new File("/home/tom");
exportParameter.setSourceDirectory(expectedSourceDir);
exportParameter.setUseSelectedProduct(true);
final HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
assertFalse(parameterMap.containsKey("sourceProductPaths"));
}
@Test
public void testCreateMap_targetDirectory() {
final File expectedTargetDir = new File("/out/put");
exportParameter.setTargetDirectory(expectedTargetDir);
final HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
final File targetDirectory = (File) parameterMap.get("targetDirectory");
assertEquals(expectedTargetDir.getAbsolutePath(), targetDirectory.getAbsolutePath());
}
@Test
public void testCreateMap_area() {
exportParameter.setNorthBound(22.9);
exportParameter.setEastBound(100.6);
exportParameter.setSouthBound(11.8);
exportParameter.setWestBound(98.06);
exportParameter.setRoiType(BindingConstants.ROI_TYPE_AREA);
final HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
assertEquals("POLYGON((98.06 22.9,100.6 22.9,100.6 11.8,98.06 11.8,98.06 22.9))", parameterMap.get("region"));
}
@Test
public void testCreateMap_wholeProduct() {
exportParameter.setRoiType(BindingConstants.ROI_TYPE_PRODUCT);
final HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
assertNull(parameterMap.get("region"));
}
@Test
public void testCreateMap_overwriteTarget() {
exportParameter.setOverwriteTarget(true);
HashMap<String, Object> parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
assertEquals("true", parameterMap.get("overwriteTarget"));
exportParameter.setOverwriteTarget(false);
parameterMap = ConverterSwingWorker.createParameterMap(exportParameter);
assertEquals("false", parameterMap.get("overwriteTarget"));
}
@Test
public void testCreateInputPathWildcards() {
final File inputDir = new File("data");
final String pathWildcards = ConverterSwingWorker.createInputPathWildcards(inputDir);
final String absolutePath = inputDir.getAbsolutePath();
assertEquals(absolutePath + File.separator + "*.zip," + absolutePath + File.separator + "*.dbl", pathWildcards);
}
@Test
public void testAddSelectedGeometry_polygon() throws ConversionException {
final JtsGeometryConverter converter = new JtsGeometryConverter();
final Geometry polygon = converter.parse("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))");
final HashMap<String, Object> parameterMap = new HashMap<>();
ConverterSwingWorker.addSelectedProductGeometry(polygon, parameterMap);
final String region = (String) parameterMap.get("region");
assertEquals("POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))", region);
}
@Test
public void testAddSelectedGeometry_point() throws ConversionException {
final JtsGeometryConverter converter = new JtsGeometryConverter();
final Geometry polygon = converter.parse("POINT(4 6))");
final HashMap<String, Object> parameterMap = new HashMap<>();
ConverterSwingWorker.addSelectedProductGeometry(polygon, parameterMap);
assertFalse(parameterMap.containsKey("region"));
}
}