package org.esa.beam.smos.visat.export; import org.esa.beam.framework.gpf.annotations.Parameter; import org.esa.beam.smos.gui.BindingConstants; import org.junit.Before; import org.junit.Test; import java.io.File; import java.lang.reflect.Field; import static org.junit.Assert.*; public class ExportParameterTest { private ExportParameter exportParameter; @Before public void setUp() { exportParameter = new ExportParameter(); } @Test public void testSetIsUseSelectedProduct() { exportParameter.setUseSelectedProduct(true); assertTrue(exportParameter.isUseSelectedProduct()); exportParameter.setUseSelectedProduct(false); assertFalse(exportParameter.isUseSelectedProduct()); } @Test public void testUseSelectedProductAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.SELECTED_PRODUCT); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.SELECTED_PRODUCT, parameter.alias()); } @Test public void testSetGetSourceDirectory() { final File sourceDirectory = new File("where/ever/my/source"); exportParameter.setSourceDirectory(sourceDirectory); assertEquals(sourceDirectory.getPath(), exportParameter.getSourceDirectory().getPath()); } @Test public void testSourceDirectoryAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.SOURCE_DIRECTORY); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.SOURCE_DIRECTORY, parameter.alias()); } @Test public void testSetIsOpenFileDialog() { exportParameter.setOpenFileDialog(true); assertTrue(exportParameter.isOpenFileDialog()); exportParameter.setOpenFileDialog(false); assertFalse(exportParameter.isOpenFileDialog()); } @Test public void testOpenFileDialogAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.OPEN_FILE_DIALOG); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.OPEN_FILE_DIALOG, parameter.alias()); } @Test public void testSetIsRecursive() { exportParameter.setRecursive(true); assertTrue(exportParameter.isRecursive()); exportParameter.setRecursive(false); assertFalse(exportParameter.isRecursive()); } @Test public void testRecursiveAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(GridPointExportDialog.ALIAS_RECURSIVE); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(GridPointExportDialog.ALIAS_RECURSIVE, parameter.alias()); assertEquals("false", parameter.defaultValue()); } @Test public void testSetGetRoiType() { exportParameter.setRoiType(5); assertEquals(5, exportParameter.getRoiType()); } @Test public void testRoiTypeAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.ROI_TYPE); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.ROI_TYPE, parameter.alias()); assertEquals("2", parameter.defaultValue()); assertArrayEquals(new String[]{"0", "1", "2"}, parameter.valueSet()); } @Test public void testSetGetNorth() { exportParameter.setNorth(56.22); assertEquals(56.22, exportParameter.getNorth(), 1e-8); exportParameter.setNorth(-19.55); assertEquals(-19.55, exportParameter.getNorth(), 1e-8); } @Test public void testNorthAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.NORTH); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.NORTH, parameter.alias()); assertEquals("90.0", parameter.defaultValue()); assertEquals("[-90.0, 90.0]", parameter.interval()); } @Test public void testSetGetSouth() { exportParameter.setSouth(-22.65); assertEquals(-22.65, exportParameter.getSouth(), 1e-8); exportParameter.setSouth(3.018); assertEquals(3.018, exportParameter.getSouth(), 1e-8); } @Test public void testSouthAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.SOUTH); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.SOUTH, parameter.alias()); assertEquals("-90.0", parameter.defaultValue()); assertEquals("[-90.0, 90.0]", parameter.interval()); } @Test public void testSetGetEast() { exportParameter.setEast(29.01); assertEquals(29.01, exportParameter.getEast(), 1e-8); exportParameter.setEast(-11.5); assertEquals(-11.5, exportParameter.getEast(), 1e-8); } @Test public void testEastAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.EAST); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.EAST, parameter.alias()); assertEquals("180.0", parameter.defaultValue()); assertEquals("[-180.0, 180.0]", parameter.interval()); } @Test public void testSetGetWest() { exportParameter.setWest(30.02); assertEquals(30.02, exportParameter.getWest(), 1e-8); exportParameter.setWest(-12.6); assertEquals(-12.6, exportParameter.getWest(), 1e-8); } @Test public void testWestAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(BindingConstants.WEST); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(BindingConstants.WEST, parameter.alias()); assertEquals("-180.0", parameter.defaultValue()); assertEquals("[-180.0, 180.0]", parameter.interval()); } @Test public void testSetGetTargetFile() { final File targetFile = new File("target/file"); exportParameter.setTargetFile(targetFile); assertEquals(targetFile.getPath(), exportParameter.getTargetFile().getPath()); } @Test public void testTargetFileAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField("targetFile"); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(GridPointExportDialog.ALIAS_TARGET_FILE, parameter.alias()); assertTrue(parameter.notNull()); assertTrue(parameter.notEmpty()); } @Test public void testSetGetExportFormat() { exportParameter.setExportFormat("wurst"); assertEquals("wurst", exportParameter.getExportFormat()); exportParameter.setExportFormat("xls"); assertEquals("xls", exportParameter.getExportFormat()); } @Test public void testExportFormatAnnotation() throws NoSuchFieldException { final Field selectedProductField = ExportParameter.class.getDeclaredField(GridPointExportDialog.ALIAS_EXPORT_FORMAT); final Parameter parameter = selectedProductField.getAnnotation(Parameter.class); assertEquals(GridPointExportDialog.ALIAS_EXPORT_FORMAT, parameter.alias()); assertEquals(GridPointExportDialog.NAME_CSV, parameter.defaultValue()); assertArrayEquals(new String[]{GridPointExportDialog.NAME_CSV, GridPointExportDialog.NAME_EEF}, parameter.valueSet()); } @Test public void testGetClone() { final File sourceDirectory = new File("source/dir"); final File targetFile = new File("target/file"); exportParameter.setUseSelectedProduct(true); exportParameter.setSourceDirectory(sourceDirectory); exportParameter.setOpenFileDialog(true); exportParameter.setRecursive(true); exportParameter.setRoiType(6); exportParameter.setNorth(7.1); exportParameter.setSouth(8.2); exportParameter.setEast(9.3); exportParameter.setWest(10.4); exportParameter.setTargetFile(targetFile); exportParameter.setExportFormat("word"); final ExportParameter clone = exportParameter.getClone(); assertNotNull(clone); assertNotSame(clone, exportParameter); assertEquals(exportParameter.isUseSelectedProduct(), clone.isUseSelectedProduct()); assertEquals(sourceDirectory.getPath(), clone.getSourceDirectory().getPath()); assertEquals(exportParameter.isOpenFileDialog(), clone.isOpenFileDialog()); assertEquals(exportParameter.isRecursive(), clone.isRecursive()); assertEquals(exportParameter.getRoiType(), clone.getRoiType()); assertEquals(exportParameter.getNorth(), clone.getNorth(), 1e-8); assertEquals(exportParameter.getSouth(), clone.getSouth(), 1e-8); assertEquals(exportParameter.getEast(), clone.getEast(), 1e-8); assertEquals(exportParameter.getWest(), clone.getWest(), 1e-8); assertEquals(targetFile.getPath(), clone.getTargetFile().getPath()); assertEquals(exportParameter.getExportFormat(), clone.getExportFormat()); } }