package pl.edu.amu.wmi.daut.re; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import junit.framework.TestCase; /** * Test klasy BasicPosixRegexpOperatorManager. * Testuje wszystkie operatory wyrazen regularnych POSIX na metodach klasy RegexpOperatorManager. */ public class TestBasicPosixRegexpOperatorManager extends TestCase { /** * Test metody GetFactory. */ public final void testGetFactory() { RegexpOperatorManager manager = new BasicPosixRegexpOperatorManager(); assertNotNull(manager); assertNull(manager.getFactory("^")); assertNotNull(manager.getFactory("*")); assertNotNull(manager.getFactory(".")); assertNotNull(manager.getFactory("\\(\\)")); assertNotNull(manager.getFactory("\\{m,n\\}")); assertNotNull(manager.getFactory("\\{m\\}")); } /** * Test metody addOperator z priorytetami. */ public final void testAddOperatorWithPiority() { RegexpOperatorManager manager = new BasicPosixRegexpOperatorManager(); assertEquals(3, manager.getPriority("*")); assertEquals(4, manager.getPriority(".")); assertEquals(4, manager.getPriority("\\(\\)")); assertEquals(3, manager.getPriority("\\{m,n\\}")); assertEquals(3, manager.getPriority("\\{m\\}")); } /** * Test metody getSeparators. */ public final void testGetSeparators() { RegexpOperatorManager manager = new BasicPosixRegexpOperatorManager(); List<String> kleene = new ArrayList<String>(); kleene.add(""); kleene.add("*"); assertEquals(kleene, manager.getSeparators("*")); List<String> anyChar = new ArrayList<String>(); anyChar.add("."); assertEquals(anyChar, manager.getSeparators(".")); List<String> doNothing = new ArrayList<String>(); doNothing.add("\\("); doNothing.add("\\)"); assertEquals(doNothing, manager.getSeparators("\\(\\)")); List<String> rangeNumber = new ArrayList<String>(); rangeNumber.add(""); rangeNumber.add("\\{"); rangeNumber.add(","); rangeNumber.add("\\}"); assertEquals(rangeNumber, manager.getSeparators("\\{m,n\\}")); List<String> fixedNumber = new ArrayList<String>(); fixedNumber.add(""); fixedNumber.add("\\{"); fixedNumber.add("\\}"); assertEquals(fixedNumber, manager.getSeparators("\\{m\\}")); } /** * Test metody getOperatorsForStringPrefix. */ public final void testGetOperatorsForStringPrefix() { RegexpOperatorManager manager = new BasicPosixRegexpOperatorManager(); List<String> string = new ArrayList<String>(); string = manager.getOperatorsForStringPrefix(""); assertEquals(Arrays.<String>asList("*", "*", "\\{m,n\\}", "\\{m\\}"), string); string = manager.getOperatorsForStringPrefix("."); assertEquals(Arrays.<String>asList(".", "."), string); string = manager.getOperatorsForStringPrefix("\\("); assertEquals(Arrays.<String>asList("\\(\\)"), string); string = manager.getOperatorsForStringPrefix("\\{m\\}\\{m,n\\}"); assertEquals(Arrays.<String>asList("*", "*", "\\{m,n\\}", "\\{m\\}"), string); } }