package org.esa.beam.smos.ee2netcdf;
import org.esa.beam.framework.gpf.annotations.OperatorMetadata;
import org.esa.beam.framework.gpf.annotations.Parameter;
import org.junit.Test;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
public class GPToNetCDFExporterOpTest {
@Test
public void testOperatorAnnotations() {
final Annotation[] declaredAnnotations = GPToNetCDFExporterOp.class.getDeclaredAnnotations();
assertEquals(1, declaredAnnotations.length);
final OperatorMetadata operatorMetadata = (OperatorMetadata) declaredAnnotations[0];
assertEquals("SmosGP2NetCDF", operatorMetadata.alias());
assertEquals("0.1", operatorMetadata.version());
assertEquals("Tom Block", operatorMetadata.authors());
assertEquals("(c) 2014 by Brockmann Consult", operatorMetadata.copyright());
assertEquals("Converts SMOS EE Products to NetCDF-GridPoint format.", operatorMetadata.description());
}
@Test
public void testParameterAnnotations_Institution() throws NoSuchFieldException {
final Field institutionField = GPToNetCDFExporterOp.class.getDeclaredField("institution");
final Parameter institutionFieldAnnotation = institutionField.getAnnotation(Parameter.class);
assertEquals("", institutionFieldAnnotation.defaultValue());
assertEquals("Set institution field for file metadata. If left empty, no institution metadata is written to output file.", institutionFieldAnnotation.description());
}
@Test
public void testParameterAnnotations_Contact() throws NoSuchFieldException {
final Field contactField = GPToNetCDFExporterOp.class.getDeclaredField("contact");
final Parameter contactFieldAnnotation = contactField.getAnnotation(Parameter.class);
assertEquals("", contactFieldAnnotation.defaultValue());
assertEquals("Set contact field for file metadata. If left empty, no contact information is written to output file.", contactFieldAnnotation.description());
}
@Test
public void testParameterAnnotations_outputBandNames() throws NoSuchFieldException {
final Field bandNamesField = GPToNetCDFExporterOp.class.getDeclaredField("outputBandNames");
final Parameter bandnamesFieldAnnotation = bandNamesField.getAnnotation(Parameter.class);
assertEquals("", bandnamesFieldAnnotation.defaultValue());
assertEquals("Comma separated list of band names to export. If left empty, no band subsetting is applied.", bandnamesFieldAnnotation.description());
}
@Test
public void testParameterAnnotations_compressionLevel() throws NoSuchFieldException {
final Field compressionLevelField = GPToNetCDFExporterOp.class.getDeclaredField("compressionLevel");
final Parameter compressionLevelFieldAnnotation = compressionLevelField.getAnnotation(Parameter.class);
assertEquals("6", compressionLevelFieldAnnotation.defaultValue());
final String[] valueSet = compressionLevelFieldAnnotation.valueSet();
assertArrayEquals(new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, valueSet);
assertEquals("Output file compression level. 0 - no compression, 9 - highest compression.", compressionLevelFieldAnnotation.description());
}
}