package org.gbif.ipt.model;
import org.gbif.dwc.terms.DcTerm;
import org.gbif.dwc.terms.DwcTerm;
import java.util.Set;
import java.util.TreeSet;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ExtensionMappingTest {
@Test
public void testFieldsOrderedAlphabetically() {
Set<PropertyMapping> fields = new TreeSet<PropertyMapping>();
// initialize PropertyMapping for DwC month term
PropertyMapping field0 = new PropertyMapping();
field0.setTerm(DwcTerm.month);
field0.setIndex(0);
fields.add(field0);
// initialize PropertyMapping for DwC BasisOfRecord term
PropertyMapping field = new PropertyMapping();
field.setTerm(DwcTerm.basisOfRecord);
field.setIndex(1);
fields.add(field);
// initialize PropertyMapping for DwC CollectionCode term
PropertyMapping field2 = new PropertyMapping();
field2.setTerm(DwcTerm.collectionCode);
field2.setIndex(2);
fields.add(field2);
// initialize PropertyMapping for DwC CatalogNumber term
PropertyMapping field3 = new PropertyMapping();
field3.setTerm(DwcTerm.catalogNumber);
field3.setIndex(3);
fields.add(field3);
// initialize PropertyMapping for DwC CatalogNumber term
PropertyMapping field4 = new PropertyMapping();
field4.setTerm(DwcTerm.acceptedNameUsage);
field4.setIndex(4);
fields.add(field4);
// initialize PropertyMapping for DC Modified term
PropertyMapping field5 = new PropertyMapping();
field5.setTerm(DcTerm.modified);
field5.setIndex(5);
fields.add(field5);
ExtensionMapping mapping = new ExtensionMapping();
mapping.setFields(fields);
assertEquals(6, mapping.getFields().size());
// http://purl.org/dc/terms/modified comes before http://rs.tdwg.org/dwc/terms/...
assertEquals(DcTerm.modified, ((PropertyMapping)mapping.getFields().toArray()[0]).getTerm());
assertEquals(DwcTerm.acceptedNameUsage, ((PropertyMapping)mapping.getFields().toArray()[1]).getTerm());
assertEquals(DwcTerm.basisOfRecord, ((PropertyMapping)mapping.getFields().toArray()[2]).getTerm());
assertEquals(DwcTerm.catalogNumber, ((PropertyMapping)mapping.getFields().toArray()[3]).getTerm());
assertEquals(DwcTerm.collectionCode, ((PropertyMapping)mapping.getFields().toArray()[4]).getTerm());
assertEquals(DwcTerm.month, ((PropertyMapping)mapping.getFields().toArray()[5]).getTerm());
}
}