]> git.frustrated-labs.net Git - gradle-changelog-plugin.git/commitdiff
tests: add test to make sure that a parser is the inverse function of a formatter
authorAlexander Goussas <[email protected]>
Fri, 24 Oct 2025 20:22:26 +0000 (15:22 -0500)
committerAlexander Goussas <[email protected]>
Sun, 26 Oct 2025 04:02:02 +0000 (23:02 -0500)
changelog-plugin/src/test/kotlin/io/github/aloussase/changelog/ChangelogPluginTest.kt [new file with mode: 0644]

diff --git a/changelog-plugin/src/test/kotlin/io/github/aloussase/changelog/ChangelogPluginTest.kt b/changelog-plugin/src/test/kotlin/io/github/aloussase/changelog/ChangelogPluginTest.kt
new file mode 100644 (file)
index 0000000..7347d65
--- /dev/null
@@ -0,0 +1,46 @@
+package io.github.aloussase.changelog
+
+import io.github.aloussase.changelog.formatter.ChangelogFormatter
+import io.github.aloussase.changelog.formatter.MarkdownFormatter
+import io.github.aloussase.changelog.parser.ChangelogParser
+import io.github.aloussase.changelog.parser.MarkdownChangelogParser
+import org.hamcrest.MatcherAssert.assertThat
+import org.hamcrest.Matchers.equalTo
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.Arguments
+import org.junit.jupiter.params.provider.MethodSource
+import java.util.stream.Stream
+
+class ChangelogPluginTest {
+
+    @ParameterizedTest
+    @MethodSource("provideParserAndFormatter")
+    fun givenParserAndFormatterWhenComposingThemThenReturnTheOriginalInput(
+        parser: ChangelogParser,
+        formatter: ChangelogFormatter,
+        input: String
+    ) {
+        assertThat(
+            formatter.format(
+                parser.parse(
+                    input
+                ).getOrThrow()
+            ),
+            equalTo(input)
+        )
+    }
+
+    companion object {
+        @JvmStatic
+        fun provideParserAndFormatter(): Stream<Arguments> {
+            return Stream.of(
+                Arguments.of(
+                    MarkdownChangelogParser(),
+                    MarkdownFormatter(),
+                    "# CHANGELOG\n\n## [0.1.2]\n- feat-01: commit message ([email protected])"
+                )
+            )
+        }
+    }
+
+}