From 294926778c780b31e270d88435853c9bc367e008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oddbj=C3=B8rn=20Kvalsund?= Date: Sat, 18 Mar 2023 01:07:02 +0100 Subject: [PATCH] Fix parsing of comment on first line --- src/main/java/org/codejive/properties/Cursor.java | 3 ++- .../codejive/properties/TestPropertiesParser.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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); + } }