From 38d5440a6a2ad6ce4451b25ed055981d304ac5f0 Mon Sep 17 00:00:00 2001 From: Alexander Goussas Date: Fri, 24 Oct 2025 15:22:26 -0500 Subject: [PATCH] tests: add test to make sure that a parser is the inverse function of a formatter --- .../changelog/ChangelogPluginTest.kt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 changelog-plugin/src/test/kotlin/io/github/aloussase/changelog/ChangelogPluginTest.kt 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 index 0000000..7347d65 --- /dev/null +++ b/changelog-plugin/src/test/kotlin/io/github/aloussase/changelog/ChangelogPluginTest.kt @@ -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 { + return Stream.of( + Arguments.of( + MarkdownChangelogParser(), + MarkdownFormatter(), + "# CHANGELOG\n\n## [0.1.2]\n- feat-01: commit message (johndoe@email.com)" + ) + ) + } + } + +} -- 2.43.0