From 6d1e25756c3e8c43ce4d5721e7665f439a19e47c Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Wed, 8 Jul 2020 10:33:26 +0200 Subject: Move common base test utils to submodule --- .../src/main/kotlin/utils/TestOutputWriter.kt | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt (limited to 'plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt') diff --git a/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt b/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt new file mode 100644 index 00000000..00b865b4 --- /dev/null +++ b/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt @@ -0,0 +1,32 @@ +package utils + +import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.base.renderers.OutputWriter +import org.jetbrains.dokka.plugability.DokkaPlugin + +class TestOutputWriterPlugin(failOnOverwrite: Boolean = true) : DokkaPlugin() { + val writer = TestOutputWriter(failOnOverwrite) + + private val dokkaBase by lazy { plugin() } + + val testWriter by extending { + (dokkaBase.outputWriter + with writer + override dokkaBase.fileWriter) + } +} + +class TestOutputWriter(private val failOnOverwrite: Boolean = true) : OutputWriter { + val contents: Map get() = _contents + + private val _contents = mutableMapOf() + override suspend fun write(path: String, text: String, ext: String) { + val fullPath = "$path$ext" + _contents.putIfAbsent(fullPath, text)?.also { + if (failOnOverwrite) throw AssertionError("File $fullPath is being overwritten.") + } + } + + override suspend fun writeResources(pathFrom: String, pathTo: String) = + write(pathTo, "*** content of $pathFrom ***", "") +} -- cgit