From e8351525c884714948d231b2d86f8fb9d46a4513 Mon Sep 17 00:00:00 2001 From: Vikas Ramsingh Rajput Date: Thu, 9 Jan 2020 23:22:47 +0300 Subject: [PATCH 1/2] BAEL-3655: Article Find vs Matches in Java Regex API - done --- .../RegexMatcherFindVsMatchesTest.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java diff --git a/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java b/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java new file mode 100644 index 0000000000..95a2a39209 --- /dev/null +++ b/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java @@ -0,0 +1,63 @@ +package com.baeldung.regex.matcher; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.junit.jupiter.api.Test; + +public class RegexMatcherFindVsMatchesTest { + + @Test + public void whenFindFourDigitWorks_thenCorrect() { + Pattern stringPattern = Pattern.compile("\\d\\d\\d\\d"); + Matcher m = stringPattern.matcher("goodbye 2019 and welcome 2020"); + + assertTrue(m.find()); + assertEquals(8, m.start()); + assertEquals("2019", m.group()); + assertEquals(12, m.end()); + + assertTrue(m.find()); + assertEquals(25, m.start()); + assertEquals("2020", m.group()); + assertEquals(29, m.end()); + + assertFalse(m.find()); + } + + @Test + public void givenStartIndex_whenFindFourDigitWorks_thenCorrect() { + Pattern stringPattern = Pattern.compile("\\d\\d\\d\\d"); + Matcher m = stringPattern.matcher("goodbye 2019 and welcome 2020"); + + assertTrue(m.find(20)); + assertEquals(25, m.start()); + assertEquals("2020", m.group()); + assertEquals(29, m.end()); + } + + @Test + public void whenMatchFourDigitWorks_thenFail() { + Pattern stringPattern = Pattern.compile("\\d\\d\\d\\d"); + Matcher m = stringPattern.matcher("goodbye 2019 and welcome 2020"); + assertFalse(m.matches()); + } + + @Test + public void whenMatchFourDigitWorks_thenCorrect() { + Pattern stringPattern = Pattern.compile("\\d\\d\\d\\d"); + Matcher m = stringPattern.matcher("2019"); + + assertTrue(m.matches()); + assertEquals(0, m.start()); + assertEquals("2019", m.group()); + assertEquals(4, m.end()); + + assertTrue(m.matches());// matches will always return the same return + } + +} From 14ff21b8cfd231551efcdaa1b2dc9a606ac440ba Mon Sep 17 00:00:00 2001 From: Vikas Ramsingh Rajput Date: Fri, 17 Jan 2020 23:54:00 +0300 Subject: [PATCH 2/2] BAEL-3655: Renamed the JUnit test file as the proper naming convention --- ...{RegexMatcherFindVsMatchesTest.java => MatcherUnitTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/{RegexMatcherFindVsMatchesTest.java => MatcherUnitTest.java} (97%) diff --git a/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java b/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/MatcherUnitTest.java similarity index 97% rename from core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java rename to core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/MatcherUnitTest.java index 95a2a39209..304b9f2f1d 100644 --- a/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/RegexMatcherFindVsMatchesTest.java +++ b/core-java-modules/core-java-text/src/test/java/com/baeldung/regex/matcher/MatcherUnitTest.java @@ -9,7 +9,7 @@ import java.util.regex.Pattern; import org.junit.jupiter.api.Test; -public class RegexMatcherFindVsMatchesTest { +public class MatcherUnitTest { @Test public void whenFindFourDigitWorks_thenCorrect() {