diff options
author | sebastian.sellmair <sebastian.sellmair@jetbrains.com> | 2020-08-24 14:02:07 +0200 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-08-25 16:21:32 +0200 |
commit | 7196323582dce7ca3f9b07262a1f94ecd8514539 (patch) | |
tree | 0c326aee84d4727d5cd5bc5c8198b992d5b58de6 /plugins/base/base-test-utils/src/main/kotlin/utils | |
parent | 219e2c98f5d03fc8581fd6ce9dd870919523be44 (diff) | |
download | dokka-7196323582dce7ca3f9b07262a1f94ecd8514539.tar.gz dokka-7196323582dce7ca3f9b07262a1f94ecd8514539.tar.bz2 dokka-7196323582dce7ca3f9b07262a1f94ecd8514539.zip |
- Move `test` projects into semantic parent projects
- Implement new `:test-utils` project
- Resolve requirement for Android SDK installation
Diffstat (limited to 'plugins/base/base-test-utils/src/main/kotlin/utils')
-rw-r--r-- | plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt b/plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt new file mode 100644 index 00000000..00b865b4 --- /dev/null +++ b/plugins/base/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 ***", "") +} |