From 5373cfc84f27af7e80b5d4532297c34ba42f47c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4rtschi=20Robin?= Date: Fri, 7 Jun 2024 08:47:25 +0200 Subject: [PATCH] Get unittests to work --- build.gradle.kts | 38 ++++++++++++++----- .../environmenttech/unittest/TestMod.java | 9 +++++ .../unittest/TestProgressBar.java | 16 +++++++- .../resources/META-INF/neoforge.mods.toml | 5 +++ 4 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 src/junit/java/robaertschi/environmenttech/unittest/TestMod.java create mode 100644 src/junit/resources/META-INF/neoforge.mods.toml diff --git a/build.gradle.kts b/build.gradle.kts index c14c600..380bb1a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,6 +34,7 @@ base { java.toolchain.languageVersion = JavaLanguageVersion.of(21) + sourceSets { // Include resources generated by data generators. main.configure { @@ -42,10 +43,30 @@ sourceSets { } } create("junit") { + java { + } + + compileClasspath += sourceSets.main.get().output + runtimeClasspath += sourceSets.main.get().output + } + + } +val junitImplementation: Configuration by configurations.getting { + extendsFrom(configurations.implementation.get()) +} +val junitRuntimeOnly: Configuration by configurations.getting { + extendsFrom(configurations.runtimeOnly.get()) +} + + +configurations["junitImplementation"].extendsFrom(configurations.implementation.get()) + + + //minecraft.accessTransformers.file rootProject.file("src/main/resources/META-INF/accesstransformer.cfg") //minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager @@ -73,6 +94,7 @@ runs { create("junit") { junit(true) + unitTestSources(sourceSets["junit"]) } @@ -103,12 +125,12 @@ runs { } -configurations["junitImplementation"].extendsFrom(configurations.implementation.get()) afterEvaluate { - runs["junit"].modSources = runs["junit"].modSources.get().stream().filter { it != sourceSets.main }.toList() + runs["junit"].modSources = runs["junit"].modSources.get().stream().filter { it != sourceSets.main.get() }.toList() } + dependencies { // Specify the version of Minecraft to use. // Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above. @@ -121,16 +143,12 @@ dependencies { // Testing + junitImplementation(platform("org.junit:junit-bom:5.10.2")) + junitImplementation("org.junit.jupiter:junit-jupiter-params") + junitRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") - sourceSets.getByName("junit") { - dependencies { - implementation(platform("org.junit:junit-bom:5.10.2")) - implementation("org.junit.jupiter:junit-jupiter-params") - runtimeOnly("org.junit.jupiter:junit-jupiter-engine") - } - - } + junitImplementation("org.assertj:assertj-core:3.25.1") // "junitImplementation"(platform("org.junit:junit-bom:5.10.2")) // "junitImplementation"("org.junit.jupiter:junit-jupiter-params") diff --git a/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java b/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java new file mode 100644 index 0000000..cade2b5 --- /dev/null +++ b/src/junit/java/robaertschi/environmenttech/unittest/TestMod.java @@ -0,0 +1,9 @@ +package robaertschi.environmenttech.unittest; + + +import net.neoforged.fml.common.Mod; + +@Mod(value = TestMod.MOD_ID) +public class TestMod { + public static final String MOD_ID = "environmenttech_tests"; +} diff --git a/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java b/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java index bb9d347..4474d3c 100644 --- a/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java +++ b/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java @@ -1,7 +1,21 @@ package robaertschi.environmenttech.unittest; -import net.neoforged.testframework.annotation.TestGroup; import org.junit.jupiter.api.Test; +import robaertschi.environmenttech.client.screen.ProgressArrowComponent; + +import static org.assertj.core.api.Assertions.*; public class TestProgressBar { + int gsp(int progress, int maxProgress) { + return ProgressArrowComponent.getScaledProgress(progress, maxProgress); + } + + @Test + void testScales() { + int scale1 = ProgressArrowComponent.getScaledProgress(1, 24); + assertThat(scale1).isEqualTo(1); + assertThat(gsp(24, 24)).isEqualTo(24); + assertThat(gsp(1, 12)).isEqualTo(2); + } + } diff --git a/src/junit/resources/META-INF/neoforge.mods.toml b/src/junit/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..ecb953e --- /dev/null +++ b/src/junit/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,5 @@ +modLoader="javafml" +loaderVersion="[2,)" +license="MIT" +[[mods]] +modId="environmenttech_tests" \ No newline at end of file