diff --git a/src/main/java/org/codejive/properties/Cursor.java b/src/main/java/org/codejive/properties/Cursor.java index e416b12..0fcd3e2 100644 --- a/src/main/java/org/codejive/properties/Cursor.java +++ b/src/main/java/org/codejive/properties/Cursor.java @@ -120,7 +120,8 @@ public boolean prevIf(PropertiesParser.Type type) { public boolean prevIf(Predicate accept) { if (hasToken() && accept.test(token())) { - return prev().hasToken(); + prev(); + return true; } else { return false; } diff --git a/src/test/java/org/codejive/properties/TestPropertiesParser.java b/src/test/java/org/codejive/properties/TestPropertiesParser.java index cf31786..8f5d1d0 100644 --- a/src/test/java/org/codejive/properties/TestPropertiesParser.java +++ b/src/test/java/org/codejive/properties/TestPropertiesParser.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.StringReader; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -92,4 +93,17 @@ void testStringify() throws IOException { String props2 = tokens.map(Token::getRaw).collect(Collectors.joining()); assertThat(props2).isEqualTo(props); } + + @Test + void testCommentOnFirstLine() throws IOException { + List expectedComments = new ArrayList<>(); + expectedComments.add("! Hi"); + expectedComments.add("! Hello"); + + Properties props = new Properties(); + props.load(new StringReader("! Hi\n! Hello\nfoo=bar\n")); + + List comments = props.getComment("foo"); + assertThat(comments).isEqualTo(expectedComments); + } }