Subversion Repositories mkgmap

Rev

Rev 3432 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package uk.me.parabola.mkgmap.osmstyle.actions;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import org.junit.Test;

import uk.me.parabola.mkgmap.reader.osm.Element;
import uk.me.parabola.mkgmap.reader.osm.Way;
import uk.me.parabola.mkgmap.scan.SyntaxException;

/**
 * @author Maxim Duester
 *
 */

public class NotContainedFilterTest {

        @Test(expected = SyntaxException.class)
        public void testNoArg() {
                NotContainedFilter filter = new NotContainedFilter("");
                filter.doFilter("x", null);
        }

        @Test(expected = SyntaxException.class)
        public void testOneArg() {
                NotContainedFilter filter = new NotContainedFilter(";");
                filter.doFilter("x", null);
        }

        @Test(expected = SyntaxException.class)
        public void test2ndArgMissing() {
                NotContainedFilter filter = new NotContainedFilter(":");
                filter.doFilter("x", null);
        }

        @Test
        public void test2ndArgNotContained() {
                NotContainedFilter filter = new NotContainedFilter(";:ref");
                Element el = stdElement();
                String s = filter.doFilter("aa", el);
                assertEquals(s, "aa");
        }

        @Test
        public void test2ndArgContained() {
                NotContainedFilter filter = new NotContainedFilter(":ref");
                Element el = stdElement();
                String s = filter.doFilter("x", el);
                assertNull(s);
        }

        @Test
        public void testNonDefaultDelimiterNotContained() {
                NotContainedFilter filter = new NotContainedFilter("#:ref");
                Element el = stdElement();
                String s = filter.doFilter("x", el);
                assertEquals(s, "x");
        }
       
        @Test
        public void testNonDefaultDelimiterContained() {
                NotContainedFilter filter = new NotContainedFilter("#:test");
                Element el = stdElement();
                el.addTag("test", "Aa#Bb#Cc#Dd");
                String s = filter.doFilter("Cc", el);
                assertNull(s);
        }
       
        @Test
        public void testMissingTag(){
                NotContainedFilter filter=new NotContainedFilter(":sometag");
                Element el = stdElement();
                String s=filter.doFilter("x", el);
                assertEquals(s, "x");
        }

        private Element stdElement() {
                Element el1 = new Way(1);
                el1.addTag("ref", "x;y;z");
                return el1;
        }

}