package skrueger.geotools; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.geotools.feature.NameImpl; import org.junit.After; import org.junit.Before; import org.junit.Test; import schmitzm.junit.TestingClass; import skrueger.AttributeMetadataImpl; public class AttributeMetadataMapTest extends TestingClass { AttributeMetadataMap amdMap; List langs; @Before public void before() { langs = new ArrayList(); langs.add("en"); langs.add("de"); amdMap = new AttributeMetadataImplMap(); } @After public void after() { amdMap.clear(); langs.clear(); } @Test public void testSortedValues() { AttributeMetadataImpl amdG = new AttributeMetadataImpl("g", langs); amdMap.put(new NameImpl("g"), amdG); AttributeMetadataImpl amdA = new AttributeMetadataImpl("a", langs); amdMap.put(new NameImpl("a"), amdA); AttributeMetadataImpl amdC = new AttributeMetadataImpl("c", langs); amdMap.put(new NameImpl("c"), amdC); assertEquals(3, amdMap.values().size()); assertEquals(3, amdMap.sortedValues().size()); assertEquals(3, amdMap.sortedValuesVisibleOnly().size()); amdA.setVisible(false); assertEquals(2, amdMap.sortedValuesVisibleOnly().size()); // Now we are setting some weights and check the correct order amdG.setWeight(-1); amdA.setWeight(4); amdC.setWeight(-4); assertEquals(-4, amdMap.sortedValuesVisibleOnly().get(0).getWeight(), 0.00000001); assertEquals(-1, amdMap.sortedValuesVisibleOnly().get(1).getWeight(), 0.00000001); // Now we are setting some weights and check the correct order amdG.setWeight(1); amdA.setWeight(2); amdC.setWeight(3); assertEquals(1, amdMap.sortedValuesVisibleOnly().get(0).getWeight(), 0.00000001); assertEquals(3, amdMap.sortedValuesVisibleOnly().get(1).getWeight(), 0.00000001); } }