View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
5    */
6   package mockit.internal.expectations.argumentMatching;
7   
8   import static org.junit.jupiter.api.Assertions.assertFalse;
9   import static org.junit.jupiter.api.Assertions.assertTrue;
10  
11  import org.junit.jupiter.api.Test;
12  
13  final class PatternMatcherTest {
14  
15      @Test
16      void matchesValidPattern() {
17          PatternMatcher matcher = new PatternMatcher("[a-z]+");
18          assertTrue(matcher.matches("hello"));
19      }
20  
21      @Test
22      void doesNotMatchNonMatchingString() {
23          PatternMatcher matcher = new PatternMatcher("[a-z]+");
24          assertFalse(matcher.matches("123"));
25      }
26  
27      @Test
28      void doesNotMatchNull() {
29          PatternMatcher matcher = new PatternMatcher("[a-z]+");
30          assertFalse(matcher.matches(null));
31      }
32  
33      @Test
34      void doesNotMatchNonCharSequence() {
35          PatternMatcher matcher = new PatternMatcher("[a-z]+");
36          assertFalse(matcher.matches(Integer.valueOf(42)));
37      }
38  
39      @Test
40      void samePatternReturnsFalseForDifferentPattern() {
41          PatternMatcher matcher1 = new PatternMatcher("[a-z]+");
42          PatternMatcher matcher2 = new PatternMatcher("[0-9]+");
43          assertFalse(matcher1.same(matcher2));
44      }
45  
46      @Test
47      void writeMismatchPhrase() {
48          PatternMatcher matcher = new PatternMatcher("[a-z]+");
49          ArgumentMismatch mismatch = new ArgumentMismatch();
50          matcher.writeMismatchPhrase(mismatch);
51          assertTrue(mismatch.toString().contains("[a-z]+"));
52      }
53  }