Createa a build_00_utilities project containing testing helpers, including the ConsoleTest abstract class.

This commit is contained in:
Paul Holt
2022-01-29 23:48:53 +11:00
parent 302e1a0e0b
commit f756389037
4 changed files with 4 additions and 35 deletions

View File

@@ -0,0 +1,37 @@
package com.pcholt.console.testutils
import com.google.common.truth.Truth
import org.junit.Rule
import org.junit.contrib.java.lang.system.SystemOutRule
import org.junit.contrib.java.lang.system.TextFromStandardInputStream
abstract class ConsoleTest {
@get:Rule
val inputRule = TextFromStandardInputStream.emptyStandardInputStream()
@get:Rule
val systemOutRule = SystemOutRule().enableLog()
val regexInputCommand = "\\{(.*)}".toRegex()
fun assertConversation(conversation: String, runMain: () -> Unit) {
inputRule.provideLines(*regexInputCommand
.findAll(conversation)
.map { it.groupValues[1] }
.toList().toTypedArray())
runMain()
Truth.assertThat(
systemOutRule.log.trimWhiteSpace()
)
.isEqualTo(
regexInputCommand
.replace(conversation, "").trimWhiteSpace()
)
}
private fun String.trimWhiteSpace() =
replace("[\\s]+".toRegex(), " ")
}