package org.esa.beam.smos.ee2netcdf.visat;
import org.esa.beam.smos.ee2netcdf.TestHelper;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
public class EEToNetCDFExportDialogTest {
@Test
public void testGetTargetFiles_singleProduct() throws IOException {
final File resourceFile = TestHelper.getResourceFile("SM_OPER_MIR_BWLF1C_20111026T143206_20111026T152520_503_001_1.zip");
final String filePath = resourceFile.getAbsolutePath();
final File targetDir = new File("/home/tom/target");
final List<File> targetFiles = EEToNetCDFExportDialog.getTargetFiles(filePath, targetDir);
assertNotNull(targetFiles);
assertEquals(1, targetFiles.size());
assertEquals(new File(targetDir, "SM_OPER_MIR_BWLF1C_20111026T143206_20111026T152520_503_001_1.nc").getAbsolutePath(),
targetFiles.get(0).getAbsolutePath());
}
@Test
public void testGetTargetFiles_directory() throws IOException {
final File resourceDirectory = TestHelper.getResourceDirectory();
final File targetDir = new File("/home/tom/target");
final String wildCardpath = resourceDirectory.getAbsolutePath() + File.separator + "*";
final List<File> targetFiles = EEToNetCDFExportDialog.getTargetFiles(wildCardpath, targetDir);
assertNotNull(targetFiles);
assertEquals(4, targetFiles.size());
assertEquals(new File(targetDir, "SM_OPER_MIR_BWLF1C_20111026T143206_20111026T152520_503_001_1.nc").getAbsolutePath(),
targetFiles.get(0).getAbsolutePath());
assertEquals(new File(targetDir, "SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.nc").getAbsolutePath(),
targetFiles.get(1).getAbsolutePath());
assertEquals(new File(targetDir, "SM_OPER_MIR_SMUDP2_20120514T163815_20120514T173133_551_001_1.nc").getAbsolutePath(),
targetFiles.get(2).getAbsolutePath());
assertEquals(new File(targetDir, "SM_REPB_MIR_SCLF1C_20110201T151254_20110201T151308_505_152_1.nc").getAbsolutePath(),
targetFiles.get(3).getAbsolutePath());
}
@Test
public void testGetExistingFiles_noneExists() {
final ArrayList<File> targetFiles = new ArrayList<>();
targetFiles.add(new File("/fantasy/location/target/file"));
targetFiles.add(new File("/not/existing/file"));
final List<File> existingFiles = EEToNetCDFExportDialog.getExistingFiles(targetFiles);
assertNotNull(existingFiles);
assertEquals(0, existingFiles.size());
}
@Test
public void testGetExistingFiles_oneExists() {
final ArrayList<File> targetFiles = new ArrayList<>();
targetFiles.add(new File("/fantasy/location/target/file"));
targetFiles.add(TestHelper.getResourceFile("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip"));
final List<File> existingFiles = EEToNetCDFExportDialog.getExistingFiles(targetFiles);
assertNotNull(existingFiles);
assertEquals(1, existingFiles.size());
}
@Test
public void testGetExistingFiles_twoExists() {
final ArrayList<File> targetFiles = new ArrayList<>();
targetFiles.add(TestHelper.getResourceFile("SM_OPER_MIR_BWLF1C_20111026T143206_20111026T152520_503_001_1.zip"));
targetFiles.add(new File("/fantasy/location/target/file"));
targetFiles.add(TestHelper.getResourceFile("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip"));
final List<File> existingFiles = EEToNetCDFExportDialog.getExistingFiles(targetFiles);
assertNotNull(existingFiles);
assertEquals(2, existingFiles.size());
}
@Test
public void testListToString() {
final File file_1 = TestHelper.getResourceFile("SM_OPER_MIR_BWLF1C_20111026T143206_20111026T152520_503_001_1.zip");
final File file_2 = TestHelper.getResourceFile("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip");
final ArrayList<File> targetFiles = new ArrayList<>();
targetFiles.add(file_1);
targetFiles.add(file_2);
assertEquals(file_1.getAbsolutePath() + "\n" + file_2.getAbsolutePath() + "\n", EEToNetCDFExportDialog.listToString(targetFiles));
}
@Test
public void testListToString_ellipseAfterTenFiles() {
final ArrayList<File> targetFiles = new ArrayList<>();
for (int i = 0; i < 14; i++) {
targetFiles.add(new File("blabla_" + i));
}
assertTrue(EEToNetCDFExportDialog.listToString(targetFiles).contains("..."));
}
// @todo 1 tb/tb continue here 2014-08-04
// @Test
// public void testSetAreaToGlobe() {
// final PropertyContainer propertyContainer = new PropertyContainer();
//
// EEToNetCDFExportDialog.setAreaToGlobe(propertyContainer);
//
// final Property north = propertyContainer.getProperty(RegionBoundsInputUI.PROPERTY_NORTH_BOUND);
// assertNotNull(north);
// assertEquals(90.0, (double)north.getValue(), 1e-8);
// }
}