diff options
author | Szymon Świstun <sswistun@virtuslab.com> | 2020-02-28 17:54:26 +0100 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-03-06 09:46:38 +0100 |
commit | 2abdfd45a8c3d39745b38629153d83871b8ceae6 (patch) | |
tree | f41cc61707edcf2541f4788160594a8ce1ab78fe /plugins/base/src/test | |
parent | e34f813a6c3130b574bacb0a31e727ceb39d0e39 (diff) | |
download | dokka-2abdfd45a8c3d39745b38629153d83871b8ceae6.tar.gz dokka-2abdfd45a8c3d39745b38629153d83871b8ceae6.tar.bz2 dokka-2abdfd45a8c3d39745b38629153d83871b8ceae6.zip |
fixed enum entries generation
Diffstat (limited to 'plugins/base/src/test')
-rw-r--r-- | plugins/base/src/test/kotlin/enums/EnumsTest.kt | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/plugins/base/src/test/kotlin/enums/EnumsTest.kt b/plugins/base/src/test/kotlin/enums/EnumsTest.kt index 9ea100a3..ea3238a5 100644 --- a/plugins/base/src/test/kotlin/enums/EnumsTest.kt +++ b/plugins/base/src/test/kotlin/enums/EnumsTest.kt @@ -1,14 +1,17 @@ package enums +import org.jetbrains.dokka.model.Enum import org.jetbrains.dokka.pages.ClasslikePageNode import org.jetbrains.dokka.pages.ModulePageNode +import org.junit.Assert +import org.junit.Assert.* import org.junit.Test import org.jetbrains.dokka.testApi.testRunner.AbstractCoreTest class EnumsTest : AbstractCoreTest() { @Test - fun basicEnums() { + fun basicEnum() { val configuration = dokkaConfiguration { passes { pass { @@ -39,6 +42,53 @@ class EnumsTest : AbstractCoreTest() { } } + @Test + fun enumWithCompanion() { + val configuration = dokkaConfiguration { + passes { + pass { + sourceRoots = listOf("src/") + } + } + } + + testInline( + """ + |/src/main/kotlin/basic/Test.kt + |package enums + | + |enum class Test { + | E1, + | E2; + | companion object {} + |} + """.trimMargin(), + configuration + ) { + documentablesCreationStage = {m -> + assertTrue("Module list cannot be empty", m.isNotEmpty()) + m.first().packages.let { p -> + assertTrue("Package list cannot be empty", p.isNotEmpty()) + p.first().classlikes.let { c -> + assertTrue("Classlikes list cannot be empty", c.isNotEmpty()) + + val enum = c.first() as Enum + assertEquals(enum.name, "Test") + assertEquals(enum.entries.count(), 2) + assertNotNull(enum.companion) + } + } + } + pagesGenerationStage = { + val map = it.getClasslikeToMemberMap() + val test = map.filterKeys { it.name == "Test" }.values.firstOrNull() + assert(test != null) { "Test not found" } + assert(test!!.any { it.name == "E1" } && test.any { it.name == "E2" }) { "Enum entries missing in parent" } + assert(map.keys.any { it.name == "E1" } && map.keys.any { it.name == "E2" }) { "Enum entries missing" } + } + } + } + fun ModulePageNode.getClasslikeToMemberMap() = this.parentMap.filterValues { it is ClasslikePageNode }.entries.groupBy({ it.value }) { it.key } |