package choonster.testmod3.tests; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * A class that runs various tests from {@link #runTest()}. * <p> * This exists because Minecraft/Forge don't support regular unit testing libraries. * * @author Choonster */ public abstract class Test { protected final Logger logger = LogManager.getLogger(this); private boolean allAssertionsPassed = true; protected void assertTrue(boolean value, String message) { if (!value) { allAssertionsPassed = false; logger.warn(String.format("Assertion failed: %s", message)); } } protected void assertFalse(boolean value, String message) { if (value) { allAssertionsPassed = false; logger.warn(String.format("Assertion failed: %s", message)); } } protected void exceptionThrown(Exception e, String message) { allAssertionsPassed = false; logger.warn(message, e); } protected void assertEqual(Object expected, Object actual) { if (!expected.equals(actual)) { allAssertionsPassed = false; logger.warn(String.format("Objects not equal. Expected: %s, Actual: %s", expected, actual)); } } public final boolean test() { runTest(); if (allAssertionsPassed) { logger.info("All assertions passed"); } return allAssertionsPassed; } protected abstract void runTest(); }