diff --git a/03_Animal/java/test/ConsoleTest.kt b/00_Utilities/jvmTestUtils/kotlin/test/ConsoleTest.kt similarity index 96% rename from 03_Animal/java/test/ConsoleTest.kt rename to 00_Utilities/jvmTestUtils/kotlin/test/ConsoleTest.kt index 3eebdcbb..d58af170 100644 --- a/03_Animal/java/test/ConsoleTest.kt +++ b/00_Utilities/jvmTestUtils/kotlin/test/ConsoleTest.kt @@ -1,3 +1,5 @@ +package com.pcholt.console.testutils + import com.google.common.truth.Truth import org.junit.Rule import org.junit.contrib.java.lang.system.SystemOutRule diff --git a/03_Animal/java/test/AnimalJavaTest.kt b/03_Animal/java/test/AnimalJavaTest.kt index 06513481..013655a3 100644 --- a/03_Animal/java/test/AnimalJavaTest.kt +++ b/03_Animal/java/test/AnimalJavaTest.kt @@ -1,3 +1,4 @@ +import com.pcholt.console.testutils.ConsoleTest import org.junit.Test class AnimalJavaTest : ConsoleTest() { diff --git a/03_Animal/kotlin/test/AnimalKtTest.kt b/03_Animal/kotlin/test/AnimalKtTest.kt index 38fae815..e93857ea 100644 --- a/03_Animal/kotlin/test/AnimalKtTest.kt +++ b/03_Animal/kotlin/test/AnimalKtTest.kt @@ -1,3 +1,4 @@ +import com.pcholt.console.testutils.ConsoleTest import org.junit.Test class AnimalKtTest : ConsoleTest() { diff --git a/03_Animal/kotlin/test/ConsoleTest.kt b/03_Animal/kotlin/test/ConsoleTest.kt deleted file mode 100644 index 3eebdcbb..00000000 --- a/03_Animal/kotlin/test/ConsoleTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -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(), " ") -} \ No newline at end of file diff --git a/buildJvm/build_00_utilities/build.gradle b/buildJvm/build_00_utilities/build.gradle new file mode 100644 index 00000000..72b8b8c4 --- /dev/null +++ b/buildJvm/build_00_utilities/build.gradle @@ -0,0 +1,7 @@ +sourceSets { + test { + java { + srcDirs "../../$testSource" + } + } +} diff --git a/buildJvm/build_00_utilities/gradle.properties b/buildJvm/build_00_utilities/gradle.properties new file mode 100644 index 00000000..2ad9bb1a --- /dev/null +++ b/buildJvm/build_00_utilities/gradle.properties @@ -0,0 +1 @@ +testSource=00_Utilities/jvmTestUtils/kotlin/test diff --git a/buildJvm/build_03_Animal_java/build.gradle b/buildJvm/build_03_Animal_java/build.gradle index bd59f127..cc447526 100644 --- a/buildJvm/build_03_Animal_java/build.gradle +++ b/buildJvm/build_03_Animal_java/build.gradle @@ -14,3 +14,7 @@ sourceSets { application { mainClass = gameMain } + +dependencies { + testImplementation(project(":build_00_utilities").sourceSets.test.output) +} diff --git a/buildJvm/build_03_Animal_kotlin/build.gradle b/buildJvm/build_03_Animal_kotlin/build.gradle index bd59f127..cc447526 100644 --- a/buildJvm/build_03_Animal_kotlin/build.gradle +++ b/buildJvm/build_03_Animal_kotlin/build.gradle @@ -14,3 +14,7 @@ sourceSets { application { mainClass = gameMain } + +dependencies { + testImplementation(project(":build_00_utilities").sourceSets.test.output) +} diff --git a/buildJvm/settings.gradle b/buildJvm/settings.gradle index 9164e5fa..c5c4cbd8 100644 --- a/buildJvm/settings.gradle +++ b/buildJvm/settings.gradle @@ -1,5 +1,7 @@ rootProject.name = 'BasicComputerGames' +include ":build_00_utilities" + include ":build_01_Acey_Ducey_kotlin" include ":build_03_Animal_kotlin" include ":build_53_King_kotlin"