package com.example.tests;
import com.frotty27.hrtk.api.annotation.HytaleSuite;
import com.frotty27.hrtk.api.annotation.HytaleTest;
import com.frotty27.hrtk.api.annotation.Tag;
import com.frotty27.hrtk.api.annotation.DisplayName;
import com.frotty27.hrtk.api.annotation.Order;
import com.frotty27.hrtk.api.assert_.HytaleAssert;
import com.frotty27.hrtk.api.assert_.ProjectileAssert;
import com.frotty27.hrtk.api.lifecycle.IsolationStrategy;
@HytaleSuite(value = "Projectile Surface Tests", isolation = IsolationStrategy.NONE)
@Tag("projectiles")
public class ProjectileSurfaceTests {
@HytaleTest
@Order(1)
@DisplayName("Projectile module is available on the server")
void projectileModuleAvailable() {
// assertProjectileModuleAvailable checks that the ProjectileModule class
// exists on the classpath. If it is missing, projectile-related features
// in your mod will not function.
ProjectileAssert.assertProjectileModuleAvailable();
}
@HytaleTest
@Order(2)
@DisplayName("Projectile module singleton is accessible")
void projectileModuleSingletonAccessible() {
// getProjectileModule returns the singleton instance.
// This verifies not just classpath presence but actual runtime availability.
Object module = ProjectileTestAdapter.getProjectileModule();
HytaleAssert.assertNotNull(
"ProjectileModule singleton should be accessible",
module
);
}
@HytaleTest
@Order(3)
@DisplayName("Projectile module exists check returns true")
void projectileModuleExistsCheck() {
HytaleAssert.assertTrue(
"projectileModuleExists should return true",
ProjectileTestAdapter.projectileModuleExists()
);
}
}