aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt
diff options
context:
space:
mode:
authorAndrzej Ratajczak <andrzej.ratajczak98@gmail.com>2020-07-08 10:33:26 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-07-08 11:48:29 +0200
commit6d1e25756c3e8c43ce4d5721e7665f439a19e47c (patch)
tree4a0043bebf061479ccaeaa19129229894eb9598b /plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt
parenta97ae720815e462c2e941d84c6273d8ecc138e6b (diff)
downloaddokka-6d1e25756c3e8c43ce4d5721e7665f439a19e47c.tar.gz
dokka-6d1e25756c3e8c43ce4d5721e7665f439a19e47c.tar.bz2
dokka-6d1e25756c3e8c43ce4d5721e7665f439a19e47c.zip
Move common base test utils to submodule
Diffstat (limited to 'plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt')
-rw-r--r--plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt32
1 files changed, 32 insertions, 0 deletions
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<DokkaBase>() }
+
+ val testWriter by extending {
+ (dokkaBase.outputWriter
+ with writer
+ override dokkaBase.fileWriter)
+ }
+}
+
+class TestOutputWriter(private val failOnOverwrite: Boolean = true) : OutputWriter {
+ val contents: Map<String, String> get() = _contents
+
+ private val _contents = mutableMapOf<String, String>()
+ 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 ***", "")
+}