public static Optional<NoticeContents> parseNoticeFile(Path noticeFile) throws IOException {
        // 1st line contains module name
        final List<String> noticeContents = Files.readAllLines(noticeFile);

        return parseNoticeFile(noticeContents);
    }
@Test
    void testParseNoticeFileCommonPath() {
        final String module = "some-module";
        final Dependency dependency1 =
                Dependency.create("groupId1", "artifactId1", "version1", null);
        final Dependency dependency2 =
                Dependency.create("groupId2", "artifactId2", "version2", "classifier2");
        final Dependency dependency3 =
                Dependency.create("org.codehaus.woodstox", "stax2-api", "4.2.1", null);
        final List<String> noticeContents =
                Arrays.asList(
                        module,
                        "",
                        "Some text about the applicable license",
                        "- groupId1:artifactId1:version1",
                        "- groupId2:artifactId2:classifier2:version2",
                        "- org.codehaus.woodstox:stax2-api:4.2.1 (https://github.com/FasterXML/stax2-api/tree/stax2-api-4.2.1)",
                        "",
                        "some epilogue");

        assertThat(NoticeParser.parseNoticeFile(noticeContents))
                .hasValueSatisfying(
                        contents -> {
                            assertThat(contents.getNoticeModuleName()).isEqualTo(module);
                            assertThat(contents.getDeclaredDependencies())
                                    .containsExactlyInAnyOrder(
                                            dependency1, dependency2, dependency3);
                        });
    }