/*
* Copyright (C) 2014.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package uk.me.parabola.mkgmap.osmstyle.actions;
import uk.me.parabola.mkgmap.scan.SyntaxException;
import org.junit.Test;
import static org.junit.Assert.*;
public class SubstringFilterTest {
@Test
public void testOneArg() {
SubstringFilter filter = new SubstringFilter("2");
String s = filter.doFilter("abcd", null);
assertEquals("cd", s);
}
@Test
public void testTwoArgs() {
SubstringFilter filter = new SubstringFilter("2:4");
String s = filter.doFilter("abcdefg", null);
assertEquals("cd", s);
}
@Test(expected=SyntaxException.class)
public void testBadArgs() {
SubstringFilter filter = new SubstringFilter("6:4");
filter.doFilter("abc", null);
}
@Test(expected = SyntaxException.class)
public void testEmptyArgs() {
SubstringFilter filter = new SubstringFilter("");
String s = filter.doFilter("abcde", null);
assertEquals("abcde", s);
}
@Test(expected = SyntaxException.class)
public void testTooManyArgs() {
SubstringFilter filter = new SubstringFilter("1:2:3");
filter.doFilter("abc", null);
}
@Test
public void testRangeLargerThanInput() {
SubstringFilter filter = new SubstringFilter("2:30");
String s = filter.doFilter("abcdef", null);
assertEquals("cdef", s);
}
@Test
public void testStartLargerThanInput() {
SubstringFilter filter = new SubstringFilter("10");
String s = filter.doFilter("abcdef", null);
assertEquals(null, s);
}
}