1 32 package net.sf.retrotranslator.runtime.java.util.regex; 33 34 import java.util.regex.*; 35 import junit.framework.TestCase; 36 37 40 public class _MatcherTestCase extends TestCase { 41 42 public void testQuoteReplacement() throws Exception { 43 assertEquals("a\\$b", Matcher.quoteReplacement("a$b")); 44 assertEquals("a\\\\b", Matcher.quoteReplacement("a\\b")); 45 assertSame("ab", Matcher.quoteReplacement("ab")); 46 } 47 48 public void testToMatchResult() throws Exception { 49 Matcher matcher = Pattern.compile("a(b.?)c").matcher("XabcYab1cZ"); 50 assertTrue(matcher.find()); 51 checkFirst(matcher); 52 MatchResult first = matcher.toMatchResult(); 53 assertTrue(matcher.find()); 54 checkSecond(matcher); 55 MatchResult second = matcher.toMatchResult(); 56 assertFalse(matcher.find()); 57 MatchResult illegal = matcher.toMatchResult(); 58 checkIllegal(illegal); 59 checkFirst(first); 60 checkSecond(second); 61 } 62 63 private void checkFirst(MatchResult first) { 64 assertEquals(1, first.groupCount()); 65 66 assertEquals(1, first.start()); 67 assertEquals(1, first.start(0)); 68 assertEquals(2, first.start(1)); 69 try { 70 first.start(2); 71 fail(); 72 } catch (IndexOutOfBoundsException e) { 73 } 75 assertEquals(4, first.end()); 76 assertEquals(4, first.end(0)); 77 assertEquals(3, first.end(1)); 78 try { 79 first.end(2); 80 fail(); 81 } catch (IndexOutOfBoundsException e) { 82 } 84 assertEquals("abc", first.group()); 85 assertEquals("abc", first.group(0)); 86 assertEquals("b", first.group(1)); 87 try { 88 first.group(2); 89 fail(); 90 } catch (IndexOutOfBoundsException e) { 91 } 93 } 94 95 private void checkSecond(MatchResult first) { 96 assertEquals(1, first.groupCount()); 97 98 assertEquals(5, first.start()); 99 assertEquals(5, first.start(0)); 100 assertEquals(6, first.start(1)); 101 try { 102 first.start(2); 103 fail(); 104 } catch (IndexOutOfBoundsException e) { 105 } 107 assertEquals(9, first.end()); 108 assertEquals(9, first.end(0)); 109 assertEquals(8, first.end(1)); 110 try { 111 first.end(2); 112 fail(); 113 } catch (IndexOutOfBoundsException e) { 114 } 116 assertEquals("ab1c", first.group()); 117 assertEquals("ab1c", first.group(0)); 118 assertEquals("b1", first.group(1)); 119 try { 120 first.group(2); 121 fail(); 122 } catch (IndexOutOfBoundsException e) { 123 } 125 } 126 127 private void checkIllegal(MatchResult illegal) { 128 assertEquals(1, illegal.groupCount()); 129 for (int i = 0; i < 10; i++) { 130 try { 131 illegal.start(i); 132 fail(); 133 } catch (IllegalStateException e) { 134 } 136 try { 137 illegal.end(i); 138 fail(); 139 } catch (IllegalStateException e) { 140 } 142 try { 143 illegal.group(i); 144 fail(); 145 } catch (IllegalStateException e) { 146 } 148 } 149 } 150 151 } | Popular Tags |