From 43fd447875e11c16b228c911f4669eca50d426c2 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 19 Nov 2016 12:40:02 +0000 Subject: Add StartsWithStringMatcher --- .../internal/styles/StartsWithStringMatcher.java | 14 ++++++++++++ .../tests/styles/StartsWithStringMatcherTests.java | 26 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/java/org/zwobble/mammoth/internal/styles/StartsWithStringMatcher.java create mode 100644 src/test/java/org/zwobble/mammoth/tests/styles/StartsWithStringMatcherTests.java (limited to 'src') diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StartsWithStringMatcher.java b/src/main/java/org/zwobble/mammoth/internal/styles/StartsWithStringMatcher.java new file mode 100644 index 0000000..f3a8715 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StartsWithStringMatcher.java @@ -0,0 +1,14 @@ +package org.zwobble.mammoth.internal.styles; + +public class StartsWithStringMatcher implements StringMatcher { + private final String prefix; + + public StartsWithStringMatcher(String prefix) { + this.prefix = prefix; + } + + @Override + public boolean matches(String value) { + return value.regionMatches(true, 0, prefix, 0, prefix.length()); + } +} diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/StartsWithStringMatcherTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/StartsWithStringMatcherTests.java new file mode 100644 index 0000000..fd29da1 --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/styles/StartsWithStringMatcherTests.java @@ -0,0 +1,26 @@ +package org.zwobble.mammoth.tests.styles; + +import org.junit.Test; +import org.zwobble.mammoth.internal.styles.StartsWithStringMatcher; +import org.zwobble.mammoth.internal.styles.StringMatcher; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; + +public class StartsWithStringMatcherTests { + @Test + public void matchesStringWithPrefix() { + StringMatcher matcher = new StartsWithStringMatcher("Heading"); + assertThat(matcher.matches("Heading"), equalTo(true)); + assertThat(matcher.matches("Heading 1"), equalTo(true)); + assertThat(matcher.matches("Custom Heading"), equalTo(false)); + assertThat(matcher.matches("Head"), equalTo(false)); + assertThat(matcher.matches("Header 2"), equalTo(false)); + } + + @Test + public void isCaseInsensitive() { + StringMatcher matcher = new StartsWithStringMatcher("Heading"); + assertThat(matcher.matches("heaDING"), equalTo(true)); + } +} -- cgit v1.2.3