Skip to content

Commit

Permalink
Tests.. kind of fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
robotgryphon committed Jun 16, 2024
1 parent 13379ac commit 0721340
Show file tree
Hide file tree
Showing 25 changed files with 291 additions and 407 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ org.gradle.configuration-cache=true
neogradle.subsystems.conventions.runs.enabled=false
neogradle.subsystems.conventions.runs.create-default-run-per-type=false

neogradle.subsystems.parchment.minecraftVersion=1.20.6
neogradle.subsystems.parchment.mappingsVersion=2024.05.01
neoForge.parchment.minecraftVersion=1.20.6
neoForge.parchment.mappingsVersion=2024.05.01

mod_id=compactmachines

Expand Down
49 changes: 37 additions & 12 deletions neoforge-main/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ neoForge {
this.dependency(coreApi)
}

unitTest {
enable()
testedMod = mods.named(modId)
}

runs {
// applies to all the run configs below
configureEach {
Expand All @@ -71,6 +76,8 @@ neoForge {
// Recommended logging level for the console
systemProperty("forge.logging.console.level", "debug")

sourceSet = project.sourceSets.main

if (!System.getenv().containsKey("CI")) {
// JetBrains Runtime Hotswap
// jvmArgument("-XX:+AllowEnhancedClassRedefinition")
Expand All @@ -91,18 +98,28 @@ neoForge {
programArguments.addAll("--height", "1080")
}

// create("server") {
// systemProperty("forge.enabledGameTestNamespaces", modId)
// environmentVariables("CM_TEST_RESOURCES", project.file("src/test/resources").path)
// programArguments("nogui")
// modSource(project.sourceSets.test.get())
// }
//
// create("gameTestServer") {
// systemProperty("forge.enabledGameTestNamespaces", modId)
// environmentVariable("CM_TEST_RESOURCES", file("src/test/resources").path)
// modSource(project.sourceSets.test.get())
// }
create("server") {
server()
gameDirectory.set(file("runs/server"))

systemProperty("forge.enabledGameTestNamespaces", modId)
programArgument("nogui")

environment.put("CM_TEST_RESOURCES", file("src/test/resources").path)

sourceSet = project.sourceSets.test
sourceSets.add(project.sourceSets.test.get())
}

create("gameTestServer") {
type = "gameTestServer"

systemProperty("forge.enabledGameTestNamespaces", modId)
environment.put("CM_TEST_RESOURCES", file("src/test/resources").path)

sourceSet = project.sourceSets.test
sourceSets.add(project.sourceSets.test.get())
}
}
}

Expand Down Expand Up @@ -153,11 +170,19 @@ dependencies {
jarJar(libraries.feather) { isTransitive = false }
}

testImplementation(neoforged.testframework)
testImplementation("org.junit.jupiter:junit-jupiter:5.7.1")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")

// Mods
// compileOnly(mods.bundles.jei)
// compileOnly(mods.jade)
}

tasks.withType<Test> {
useJUnitPlatform()
}

tasks.withType<ProcessResources> {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
Expand Down
5 changes: 0 additions & 5 deletions neoforge-main/gradle.properties

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.compactmods.machines.test.util;
package dev.compactmods.machines.test.gametest;

import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package dev.compactmods.machines.test;
package dev.compactmods.machines.test.gametest;

import dev.compactmods.machines.api.CompactMachinesApi;
import dev.compactmods.machines.api.room.CompactMachines.roomApi();
import dev.compactmods.machines.api.CompactMachines;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.testframework.conf.Feature;
import net.neoforged.testframework.conf.FrameworkConfiguration;

@Mod(CompactMachinesApi.MOD_ID)
@Mod(CompactMachines.MOD_ID)
public class CompactMachinesTest {

public CompactMachinesTest(ModContainer container, IEventBus modBus) {
final var config = FrameworkConfiguration.builder(CompactMachinesApi.modRL("tests"))
final var config = FrameworkConfiguration.builder(CompactMachines.modRL("tests"))
.enable(Feature.GAMETEST)
.build();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.compactmods.machines.test;
package dev.compactmods.machines.test.gametest;

import com.google.common.collect.ImmutableSet;
import dev.compactmods.machines.api.CompactMachinesApi;
import dev.compactmods.machines.api.CompactMachines;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.packs.PackType;
import net.minecraft.server.packs.repository.FolderRepositorySource;
Expand All @@ -18,7 +18,7 @@
import java.nio.file.Path;
import java.util.concurrent.ExecutionException;

@EventBusSubscriber(modid = CompactMachinesApi.MOD_ID)
@EventBusSubscriber(modid = CompactMachines.MOD_ID)
public class ServerEventHandler {

final static Logger LOG = LogManager.getLogger();
Expand Down Expand Up @@ -55,7 +55,7 @@ public static void onServerStarted(final ServerStartedEvent evt) {
server.reloadResources(packs.getSelectedIds()).get();

server.getResourceManager()
.listResources("structures", rl -> rl.getNamespace().equals(CompactMachinesApi.MOD_ID))
.listResources("structures", rl -> rl.getNamespace().equals(CompactMachines.MOD_ID))
.forEach((rl, res) -> LOG.debug(rl.toDebugFileName()));

} catch (InterruptedException | ExecutionException e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package dev.compactmods.machines.test.gametest;

import com.google.common.base.Predicates;
import dev.compactmods.machines.api.room.IRoomApi;
import dev.compactmods.machines.api.room.registration.IRoomRegistrar;
import dev.compactmods.machines.api.room.spatial.IRoomChunkManager;
import dev.compactmods.machines.api.room.spatial.IRoomChunks;
import dev.compactmods.machines.api.room.spawn.IRoomSpawnManager;
import dev.compactmods.machines.room.RoomRegistrar;
import dev.compactmods.machines.room.spatial.GraphChunkManager;
import dev.compactmods.machines.room.spawn.RoomSpawnManagers;

import java.util.function.Predicate;

public class TestRoomApi {

public static IRoomApi forTest() {
final var registrar = new RoomRegistrar();
final var spawnManagers = new RoomSpawnManagers(registrar);
final var chunkManager = new GraphChunkManager();

return new IRoomApi() {
@Override
public Predicate<String> roomCodeValidator() {
return Predicates.alwaysTrue();
}

@Override
public IRoomRegistrar registrar() {
return registrar;
}

@Override
public IRoomSpawnManager spawnManager(String roomCode) {
return spawnManagers.get(roomCode);
}

@Override
public IRoomChunkManager chunkManager() {
return chunkManager;
}

@Override
public IRoomChunks chunks(String roomCode) {
return chunkManager.get(roomCode);
}
};
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package dev.compactmods.machines.test.data;
package dev.compactmods.machines.test.gametest.data;

import dev.compactmods.machines.api.CompactMachinesApi;
import dev.compactmods.machines.api.room.CompactMachines.roomApi();
import dev.compactmods.machines.api.CompactMachines;
import dev.compactmods.machines.api.room.history.RoomEntryPoint;
import dev.compactmods.machines.player.PlayerEntryPointHistoryManager;
import dev.compactmods.machines.api.room.history.RoomEntryResult;
import dev.compactmods.machines.room.RoomCodeGenerator;
import dev.compactmods.machines.test.TestCompactMachines.roomApi();
import dev.compactmods.machines.test.gametest.TestRoomApi;
import net.minecraft.gametest.framework.GameTest;
import net.minecraft.gametest.framework.GameTestHelper;
import net.minecraft.nbt.NbtOps;
Expand All @@ -19,14 +18,14 @@
import java.util.stream.Collectors;

@PrefixGameTestTemplate(false)
@GameTestHolder(CompactMachinesApi.MOD_ID)
@GameTestHolder(CompactMachines.MOD_ID)
public class PlayerHistoryTrackerTests {

private static final String BATCH = "PLAYER_HISTORY_TRACKING";

@GameTest(template = "empty_1x1", batch = BATCH)
public static void failsPlayerGoingTooFar(final GameTestHelper test) {
CompactMachines.roomApi().INSTANCE = TestCompactMachines.roomApi().forTest(test);
CompactMachines.Internal.ROOM_API = TestRoomApi.forTest();

final var history = new PlayerEntryPointHistoryManager(1);

Expand All @@ -42,7 +41,7 @@ public static void failsPlayerGoingTooFar(final GameTestHelper test) {

@GameTest(template = "empty_1x1", batch = BATCH, timeoutTicks = 1400)
public static void canGetPlayerHistory(final GameTestHelper test) throws InterruptedException {
CompactMachines.roomApi().INSTANCE = TestCompactMachines.roomApi().forTest(test);
CompactMachines.Internal.ROOM_API = TestRoomApi.forTest();

final var history = new PlayerEntryPointHistoryManager(5);

Expand Down Expand Up @@ -71,7 +70,7 @@ public static void canGetPlayerHistory(final GameTestHelper test) throws Interru

@GameTest(template = "empty_1x1", batch = BATCH, timeoutTicks = 1400)
public static void canRemovePlayerHistory(final GameTestHelper test) throws InterruptedException {
CompactMachines.roomApi().INSTANCE = TestCompactMachines.roomApi().forTest(test);
CompactMachines.Internal.ROOM_API = TestRoomApi.forTest();

final var history = new PlayerEntryPointHistoryManager(5);
final var player = test.makeMockPlayer(GameType.SURVIVAL);
Expand All @@ -98,7 +97,7 @@ public static void canRemovePlayerHistory(final GameTestHelper test) throws Inte

@GameTest(template = "empty_1x1", batch = BATCH, timeoutTicks = 1400)
public static void testDataLogic(final GameTestHelper test) throws InterruptedException {
CompactMachines.roomApi().INSTANCE = TestCompactMachines.roomApi().forTest(test);
CompactMachines.Internal.ROOM_API = TestRoomApi.forTest();

final var history = new PlayerEntryPointHistoryManager(5);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package dev.compactmods.machines.test.worldgen;
package dev.compactmods.machines.test.gametest.worldgen;

import dev.compactmods.machines.api.room.CompactRoomGenerator;
import dev.compactmods.machines.api.room.RoomTemplate;
import dev.compactmods.machines.api.CompactMachinesApi;
import dev.compactmods.machines.api.CompactMachines;
import dev.compactmods.machines.api.util.BlockSpaceUtil;
import dev.compactmods.machines.test.util.CompactGameTestHelper;
import dev.compactmods.machines.test.gametest.CompactGameTestHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.gametest.framework.GameTest;
Expand All @@ -15,10 +15,7 @@
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.phys.AABB;
import net.neoforged.neoforge.gametest.GameTestHolder;
import net.neoforged.neoforge.gametest.PrefixGameTestTemplate;
import net.neoforged.testframework.annotation.ForEachTest;
import net.neoforged.testframework.gametest.EmptyTemplate;
import org.apache.logging.log4j.LogManager;

import java.util.ArrayList;
Expand All @@ -34,12 +31,12 @@ public class RoomGenerationTests {
public static Collection<TestFunction> roomTests() {
List<TestFunction> funcs = new ArrayList<>();

makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("3_cubed"), new RoomTemplate(3, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("5_cubed"), new RoomTemplate(5, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("7_cubed"), new RoomTemplate(7, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("9_cubed"), new RoomTemplate(9, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("11_cubed"), new RoomTemplate(11, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachinesApi.modRL("13_cubed"), new RoomTemplate(13, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("3_cubed"), new RoomTemplate(3, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("5_cubed"), new RoomTemplate(5, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("7_cubed"), new RoomTemplate(7, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("9_cubed"), new RoomTemplate(9, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("11_cubed"), new RoomTemplate(11, CommonColors.WHITE));
makeAndAddRoomTemplateTest(funcs, CompactMachines.modRL("13_cubed"), new RoomTemplate(13, CommonColors.WHITE));

return funcs;
}
Expand All @@ -48,7 +45,7 @@ private static void makeAndAddRoomTemplateTest(List<TestFunction> funcs, Resourc
funcs.add(new TestFunction(
"room_generation",
"builtin_roomgen_" + id.getPath(),
CompactMachinesApi.MOD_ID + ":empty_15x15",
CompactMachines.MOD_ID + ":empty_15x15",
Rotation.NONE,
200,
0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
package dev.compactmods.machines.test.worldgen;
package dev.compactmods.machines.test.gametest.worldgen;

import dev.compactmods.machines.api.CompactMachinesApi;
import dev.compactmods.machines.api.CompactMachines;
import dev.compactmods.machines.api.room.CompactRoomGenerator;
import dev.compactmods.machines.api.room.RoomStructureInfo;
import dev.compactmods.machines.test.util.CompactGameTestHelper;
import dev.compactmods.machines.test.gametest.CompactGameTestHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.gametest.framework.GameTest;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.AABB;
import net.neoforged.neoforge.gametest.GameTestHolder;
import net.neoforged.neoforge.gametest.PrefixGameTestTemplate;
import net.neoforged.testframework.annotation.ForEachTest;

@ForEachTest(groups = StructureGenTests.BATCH)
Expand All @@ -28,7 +26,7 @@ public static void structurePlacedCenter(final CompactGameTestHelper testHelper)
CompactRoomGenerator.generateRoom(testHelper.getLevel(), roomDims, Blocks.WHITE_STAINED_GLASS.defaultBlockState());

CompactRoomGenerator.populateStructure(testHelper.getLevel(),
CompactMachinesApi.modRL("gold_1x1"),
CompactMachines.modRL("gold_1x1"),
roomDims.deflate(1), RoomStructureInfo.RoomStructurePlacement.CENTERED);

testHelper.succeed();
Expand All @@ -45,7 +43,7 @@ public static void structurePlacedCeiling(final CompactGameTestHelper testHelper
CompactRoomGenerator.generateRoom(testHelper.getLevel(), roomDims, Blocks.WHITE_STAINED_GLASS.defaultBlockState());

CompactRoomGenerator.populateStructure(testHelper.getLevel(),
CompactMachinesApi.modRL("gold_1x1"),
CompactMachines.modRL("gold_1x1"),
roomDims.deflate(1), RoomStructureInfo.RoomStructurePlacement.CENTERED_CEILING);

testHelper.succeed();
Expand All @@ -62,7 +60,7 @@ public static void structurePlacedFloor(final CompactGameTestHelper testHelper)
CompactRoomGenerator.generateRoom(testHelper.getLevel(), roomDims, Blocks.WHITE_STAINED_GLASS.defaultBlockState());

CompactRoomGenerator.populateStructure(testHelper.getLevel(),
CompactMachinesApi.modRL("gold_1x1"),
CompactMachines.modRL("gold_1x1"),
roomDims.deflate(1), RoomStructureInfo.RoomStructurePlacement.CENTERED_FLOOR);

testHelper.succeed();
Expand Down
Loading

0 comments on commit 0721340

Please sign in to comment.