package org.geotools.styling.css; import static org.junit.Assert.*; import org.geotools.styling.css.selector.Data; import org.geotools.styling.css.selector.Id; import org.geotools.styling.css.selector.ScaleRange; import org.geotools.styling.css.selector.Selector; import org.geotools.styling.css.selector.TypeName; import org.junit.Test; public class SelectorCombineTest { @Test public void testAndIds() { Id id1 = new Id("states.1"); Id id2 = new Id("states.2"); assertEquals(Selector.REJECT, Selector.and(id1, id2)); Id id13 = new Id("states.1", "states.3"); assertEquals(new Id("states.1"), Selector.and(id1, id13)); } @Test public void testAndSeparateDataFilters() { Data s1 = new Data("att1 > 10"); Data s2 = new Data("att2 > 10"); assertEquals(new Data("att1 > 10 and att2 > 10"), Selector.and(s1, s2)); } @Test public void testAndRepeatedFilters() { Data s1 = new Data("att1 > 10"); Data s2 = new Data("att1 > 10"); // simplifying filter visitor to the rescue assertEquals(new Data("att1 > 10.0"), Selector.and(s1, s2)); } @Test public void testAndTypename() { TypeName states1 = new TypeName("states"); TypeName states2 = new TypeName("states"); assertEquals(new TypeName("states"), Selector.and(states1, states2)); TypeName spearfish = new TypeName("spearfish"); assertEquals(Selector.REJECT, Selector.and(states1, spearfish)); } @Test public void testAndScaleRange() { ScaleRange range1 = new ScaleRange(0, false, 20000, false); ScaleRange range2 = new ScaleRange(10000, false, 30000, true); assertEquals(new ScaleRange(10000, false, 20000, false), Selector.and(range1, range2)); ScaleRange range3 = new ScaleRange(30000, true, Double.POSITIVE_INFINITY, false); assertEquals(Selector.REJECT, Selector.and(range1, range3)); } }