diff --git a/buildSrc/src/main/kotlin/net.sf.robocode.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/net.sf.robocode.java-conventions.gradle.kts index 2ac1c46ea..7696bf62d 100644 --- a/buildSrc/src/main/kotlin/net.sf.robocode.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/net.sf.robocode.java-conventions.gradle.kts @@ -31,6 +31,7 @@ tasks { // engine errors (e.g. "Unable to stop thread") on slow/loaded CI machines. // Retry failed tests a few times so such flakiness does not fail the build. withType { + useJUnitPlatform() retry { maxRetries.set(2) maxFailures.set(20) diff --git a/gradle/test-libs.versions.toml b/gradle/test-libs.versions.toml index 4762e3c0e..aefb3fcc8 100644 --- a/gradle/test-libs.versions.toml +++ b/gradle/test-libs.versions.toml @@ -1,10 +1,14 @@ [versions] -junit = "4.13.2" +junit = "5.14.4" +junit-platform = "1.14.4" +hamcrest = "3.0" [libraries] -junit = { module = "junit:junit", version.ref = "junit" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } +hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" } +junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" } [bundles] diff --git a/robocode.core/build.gradle.kts b/robocode.core/build.gradle.kts index 10b24a912..fbd17321e 100644 --- a/robocode.core/build.gradle.kts +++ b/robocode.core/build.gradle.kts @@ -7,7 +7,8 @@ dependencies { implementation(project(":robocode.api")) implementation(libs.picocontainer) - testImplementation(testLibs.junit) + testImplementation(testLibs.junit.jupiter) + testRuntimeOnly(testLibs.junit.platform.launcher) } description = "Robocode Core" diff --git a/robocode.core/src/test/java/net/sf/robocode/serialization/RbSerializerTest.java b/robocode.core/src/test/java/net/sf/robocode/serialization/RbSerializerTest.java index 2120c9ac9..f90743b92 100644 --- a/robocode.core/src/test/java/net/sf/robocode/serialization/RbSerializerTest.java +++ b/robocode.core/src/test/java/net/sf/robocode/serialization/RbSerializerTest.java @@ -15,10 +15,10 @@ import net.sf.robocode.robotpaint.Graphics2DSerialized; import net.sf.robocode.security.HiddenAccess; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import robocode.util.Utils; @@ -39,7 +39,7 @@ public class RbSerializerTest { Exception exception = null; - @BeforeClass + @BeforeAll public static void init() { if (!new File("").getAbsolutePath().endsWith("robocode.core")) { throw new Error("Please run test with current directory in 'robocode.core'"); @@ -51,7 +51,7 @@ public static void init() { HiddenAccess.initContainer(); } - @AfterClass + @AfterAll public static void cleanup() { System.setProperty("NOSECURITY", "false"); } @@ -72,7 +72,7 @@ public void empty() throws IOException { ExecCommands ec2 = (ExecCommands) rbs.deserialize(in); assertNear(ec2.getBodyTurnRemaining(), ec.getBodyTurnRemaining()); - Assert.assertTrue(ec2.isTryingToPaint()); + Assertions.assertTrue(ec2.isTryingToPaint()); } @Test @@ -93,9 +93,9 @@ public void withBullets() throws IOException { assertNear(ec2.getBodyTurnRemaining(), ec.getBodyTurnRemaining()); assertNear(ec2.getBullets().get(0).getPower(), 1.0); - Assert.assertFalse(ec2.getBullets().get(1).isFireAssistValid()); - Assert.assertTrue(ec2.getBullets().get(2).isFireAssistValid()); - Assert.assertEquals(ec2.getBullets().get(2).getBulletId(), -128); + Assertions.assertFalse(ec2.getBullets().get(1).isFireAssistValid()); + Assertions.assertTrue(ec2.getBullets().get(2).isFireAssistValid()); + Assertions.assertEquals(ec2.getBullets().get(2).getBulletId(), -128); } @Test @@ -117,11 +117,11 @@ public void withMessages() throws IOException { ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); ExecCommands ec2 = (ExecCommands) rbs.deserialize(in); - Assert.assertEquals(ec2.getTeamMessages().get(0).message[0], 0); - Assert.assertEquals(ec2.getTeamMessages().get(0).message[10], 10); - Assert.assertEquals(ec2.getTeamMessages().get(0).sender, "Foo"); - Assert.assertEquals(ec2.getTeamMessages().get(0).recipient, "Bar"); - Assert.assertNull(ec2.getTeamMessages().get(1).message); + Assertions.assertEquals(ec2.getTeamMessages().get(0).message[0], 0); + Assertions.assertEquals(ec2.getTeamMessages().get(0).message[10], 10); + Assertions.assertEquals(ec2.getTeamMessages().get(0).sender, "Foo"); + Assertions.assertEquals(ec2.getTeamMessages().get(0).recipient, "Bar"); + Assertions.assertNull(ec2.getTeamMessages().get(1).message); } @Test @@ -141,8 +141,8 @@ public void withProperties() throws IOException { ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); ExecCommands ec2 = (ExecCommands) rbs.deserialize(in); - Assert.assertEquals(ec2.getDebugProperties().get(0).getKey(), "UTF8 Native characters"); - Assert.assertEquals(ec2.getDebugProperties().get(0).getValue(), "Příliš žluťoučký kůň úpěl ďábelské ódy."); + Assertions.assertEquals(ec2.getDebugProperties().get(0).getKey(), "UTF8 Native characters"); + Assertions.assertEquals(ec2.getDebugProperties().get(0).getValue(), "Příliš žluťoučký kůň úpěl ďábelské ódy."); } // @Test @@ -169,7 +169,7 @@ public void speed() throws IOException { ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); ExecCommands ec2 = (ExecCommands) rbs.deserialize(in); - Assert.assertEquals(ec2.getGunColor(), i); + Assertions.assertEquals(ec2.getGunColor(), i); } } @@ -192,7 +192,7 @@ public void speed2() { ec.setGunColor(i); ExecCommands ec2 = (ExecCommands) ObjectCloner.deepCopy(ec); - Assert.assertEquals(ec2.getGunColor(), i); + Assertions.assertEquals(ec2.getGunColor(), i); } } @@ -258,10 +258,10 @@ public void paint(Graphics g) { f.setVisible(false); } - Assert.assertNull("Exception occured: " + exception, exception); + Assertions.assertNull(exception, "Exception occured: " + exception); } public static void assertNear(double v1, double v2) { - org.junit.Assert.assertEquals(v1, v2, Utils.NEAR_DELTA); + Assertions.assertEquals(v1, v2, Utils.NEAR_DELTA); } } diff --git a/robocode.core/src/test/java/net/sf/robocode/version/VersionTest.java b/robocode.core/src/test/java/net/sf/robocode/version/VersionTest.java index 65acbf6b0..6735289ea 100644 --- a/robocode.core/src/test/java/net/sf/robocode/version/VersionTest.java +++ b/robocode.core/src/test/java/net/sf/robocode/version/VersionTest.java @@ -8,8 +8,8 @@ package net.sf.robocode.version; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.io.File; @@ -26,117 +26,117 @@ public class VersionTest { @Test public void same() { - Assert.assertEquals(0, Version.compare("1.1.3", "1.1.3")); + Assertions.assertEquals(0, Version.compare("1.1.3", "1.1.3")); } @Test public void equalVersion() { - Assert.assertEquals(0, Version.compare("1.1", "1.1.0.0")); + Assertions.assertEquals(0, Version.compare("1.1", "1.1.0.0")); } @Test public void equalAlphas() { - Assert.assertEquals(0, Version.compare(" 1.2 Alpha", "1.2.0.0alpha1 ")); + Assertions.assertEquals(0, Version.compare(" 1.2 Alpha", "1.2.0.0alpha1 ")); } @Test public void equalBetas() { - Assert.assertEquals(0, Version.compare("4.2.1Beta2 ", " 4.2.1.0 beta 2")); + Assertions.assertEquals(0, Version.compare("4.2.1Beta2 ", " 4.2.1.0 beta 2")); } @Test public void greater() { - Assert.assertTrue(Version.compare("1.1.4", "1.1.3") > 0); + Assertions.assertTrue(Version.compare("1.1.4", "1.1.3") > 0); } @Test public void greaterShort() { - Assert.assertTrue(Version.compare("1.4", "1.1.3") > 0); + Assertions.assertTrue(Version.compare("1.4", "1.1.3") > 0); } @Test public void greaterShort2() { - Assert.assertTrue(Version.compare("1.4", "1.1") > 0); + Assertions.assertTrue(Version.compare("1.4", "1.1") > 0); } @Test public void greaterShortBeta() { - Assert.assertTrue(Version.compare("1.4 Beta", "1.1.3") > 0); + Assertions.assertTrue(Version.compare("1.4 Beta", "1.1.3") > 0); } @Test public void greaterShortBeta3() { - Assert.assertTrue(Version.compare("1.4 Beta", "1.1") > 0); + Assertions.assertTrue(Version.compare("1.4 Beta", "1.1") > 0); } @Test public void greaterShortBeta2() { - Assert.assertTrue(Version.compare("1.4", "1.1.3") > 0); + Assertions.assertTrue(Version.compare("1.4", "1.1.3") > 0); } @Test public void greaterLong() { - Assert.assertTrue(Version.compare("1.4.1", "1.1") > 0); + Assertions.assertTrue(Version.compare("1.4.1", "1.1") > 0); } @Test public void smaller() { - Assert.assertTrue(Version.compare("1.1.2", "1.1.3") < 0); + Assertions.assertTrue(Version.compare("1.1.2", "1.1.3") < 0); } @Test public void greaterToo() { - Assert.assertTrue(Version.compare("4.1.2", "1.1.3") > 0); + Assertions.assertTrue(Version.compare("4.1.2", "1.1.3") > 0); } @Test public void greaterThanBeta() { - Assert.assertTrue(Version.compare("1.1.3", "1.1.3 Beta") > 0); + Assertions.assertTrue(Version.compare("1.1.3", "1.1.3 Beta") > 0); } @Test public void smallerThanBeta() { - Assert.assertTrue(Version.compare("1.1.2", "1.1.3 Beta") < 0); + Assertions.assertTrue(Version.compare("1.1.2", "1.1.3 Beta") < 0); } @Test public void smallerThanAlpha() { - Assert.assertTrue(Version.compare("1.1.3 Alpha", "1.1.3 Beta") < 0); + Assertions.assertTrue(Version.compare("1.1.3 Alpha", "1.1.3 Beta") < 0); } @Test public void compareBetas() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.1.3 Beta", "1.1.3 Beta 2") < 0); + Assertions.assertTrue(Version.compare("1.1.3 Beta", "1.1.3 Beta 2") < 0); } @Test public void compareBetas2() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.1.3 Beta 2 ", "1.1.3 Beta 3") < 0); + Assertions.assertTrue(Version.compare("1.1.3 Beta 2 ", "1.1.3 Beta 3") < 0); } @Test public void compareBetas3() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.1.3 Beta2 ", "1.1.3 Beta 3") < 0); + Assertions.assertTrue(Version.compare("1.1.3 Beta2 ", "1.1.3 Beta 3") < 0); } @Test public void compareBetas4() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.1.3Beta2", "1.1.3 Beta 3") < 0); + Assertions.assertTrue(Version.compare("1.1.3Beta2", "1.1.3 Beta 3") < 0); } @Test public void compareBetasShort() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.7 Beta", "1.1") > 0); + Assertions.assertTrue(Version.compare("1.7 Beta", "1.1") > 0); } @Test public void compareBetasShort2() { // we can't name versions Beta 2 - Assert.assertTrue(Version.compare("1.7 Beta", "1.8") < 0); + Assertions.assertTrue(Version.compare("1.7 Beta", "1.8") < 0); } } diff --git a/robocode.host/build.gradle.kts b/robocode.host/build.gradle.kts index 74054c5cb..b80af52ca 100644 --- a/robocode.host/build.gradle.kts +++ b/robocode.host/build.gradle.kts @@ -8,7 +8,8 @@ dependencies { implementation(project(":robocode.core")) implementation(libs.picocontainer) - testImplementation(testLibs.junit) + testImplementation(testLibs.junit.jupiter) + testRuntimeOnly(testLibs.junit.platform.launcher) } description = "Robocode Host" diff --git a/robocode.host/src/test/java/net/sf/robocode/host/jarjar/JarJarTest.java b/robocode.host/src/test/java/net/sf/robocode/host/jarjar/JarJarTest.java index a75fd4dbb..bb3d15427 100644 --- a/robocode.host/src/test/java/net/sf/robocode/host/jarjar/JarJarTest.java +++ b/robocode.host/src/test/java/net/sf/robocode/host/jarjar/JarJarTest.java @@ -8,8 +8,8 @@ package net.sf.robocode.host.jarjar; -import org.junit.Test; -import org.junit.Assert; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Assertions; import java.io.File; import java.net.URL; @@ -50,12 +50,12 @@ public void run() throws IOException { int len = isr.read(c); - Assert.assertEquals(len, 4); - Assert.assertEquals('T', c[0]); - Assert.assertEquals('e', c[1]); - Assert.assertEquals('s', c[2]); - Assert.assertEquals('t', c[3]); - Assert.assertFalse(isr.ready()); + Assertions.assertEquals(len, 4); + Assertions.assertEquals('T', c[0]); + Assertions.assertEquals('e', c[1]); + Assertions.assertEquals('s', c[2]); + Assertions.assertEquals('t', c[3]); + Assertions.assertFalse(isr.ready()); isr.close(); inputStream.close(); } diff --git a/robocode.host/src/test/java/net/sf/robocode/host/security/ThreadManagerTest.java b/robocode.host/src/test/java/net/sf/robocode/host/security/ThreadManagerTest.java index 1b41ebc86..76eca57ae 100644 --- a/robocode.host/src/test/java/net/sf/robocode/host/security/ThreadManagerTest.java +++ b/robocode.host/src/test/java/net/sf/robocode/host/security/ThreadManagerTest.java @@ -13,10 +13,9 @@ import net.sf.robocode.host.io.RobotFileSystemManager; import net.sf.robocode.repository.IRobotItem; import net.sf.robocode.security.HiddenAccess; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import robocode.control.RobotSpecification; import java.io.File; @@ -32,13 +31,15 @@ */ public class ThreadManagerTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + @TempDir + File folder; // The thread would keep the whole robot in memory, and Java 24+ has no SecurityManager to remove it @Test public void aThreadIsNotKeptAfterItOpensAFile() throws IOException { - File root = folder.newFolder("data"); + File root = new File(folder, "data"); + + Assertions.assertTrue(root.mkdir()); IHostedThread robot = createAdvancedRobot(root); ThreadManager manager = new ThreadManager(); @@ -48,7 +49,7 @@ public void aThreadIsNotKeptAfterItOpensAFile() throws IOException { stream.close(); - Assert.assertFalse(manager.checkRobotFileStream()); + Assertions.assertFalse(manager.checkRobotFileStream()); } private static IHostedThread createAdvancedRobot(final File root) { diff --git a/robocode.roborumble/build.gradle.kts b/robocode.roborumble/build.gradle.kts index a44f5ebdc..73e07c8e3 100644 --- a/robocode.roborumble/build.gradle.kts +++ b/robocode.roborumble/build.gradle.kts @@ -8,7 +8,8 @@ dependencies { runtimeOnly(project(":robocode.core")) runtimeOnly(project(":robocode.battle")) runtimeOnly(libs.codesize) - testImplementation(testLibs.junit) + testImplementation(testLibs.junit.jupiter) + testRuntimeOnly(testLibs.junit.platform.launcher) } description = "Roborumble Client" diff --git a/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/battlesengine/BattlesRunnerTest.java b/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/battlesengine/BattlesRunnerTest.java index 76d8505f8..fc11e98ef 100644 --- a/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/battlesengine/BattlesRunnerTest.java +++ b/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/battlesengine/BattlesRunnerTest.java @@ -8,10 +8,9 @@ package net.sf.robocode.roborumble.battlesengine; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import java.io.File; import java.io.FileInputStream; @@ -23,51 +22,65 @@ */ public class BattlesRunnerTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + @TempDir + File folder; + + private File newFolder(String name) { + File directory = new File(folder, name); + + Assertions.assertTrue(directory.mkdir()); + return directory; + } + + private File newFile(String name) throws IOException { + File file = new File(folder, name); + + Assertions.assertTrue(file.createNewFile()); + return file; + } @Test public void deletesEverythingInTheDirectoryAndKeepsIt() throws IOException { - File data = folder.newFolder("data"); + File data = newFolder("data"); File robot = new File(data, "a/b/One.data"); - Assert.assertTrue(robot.mkdirs()); - Assert.assertTrue(new File(robot, "#1").createNewFile()); - Assert.assertTrue(new File(data, "loose").createNewFile()); + Assertions.assertTrue(robot.mkdirs()); + Assertions.assertTrue(new File(robot, "#1").createNewFile()); + Assertions.assertTrue(new File(data, "loose").createNewFile()); - Assert.assertTrue(BattlesRunner.deleteContents(data)); + Assertions.assertTrue(BattlesRunner.deleteContents(data)); - Assert.assertTrue(data.isDirectory()); - Assert.assertEquals(0, data.list().length); + Assertions.assertTrue(data.isDirectory()); + Assertions.assertEquals(0, data.list().length); } @Test public void aMissingDirectoryIsFine() { - Assert.assertTrue(BattlesRunner.deleteContents(new File(folder.getRoot(), "missing"))); + Assertions.assertTrue(BattlesRunner.deleteContents(new File(folder, "missing"))); } @Test public void aPathThatCannotBeListedIsAFailure() throws IOException { - Assert.assertFalse(BattlesRunner.deleteContents(folder.newFile("not-a-directory"))); + Assertions.assertFalse(BattlesRunner.deleteContents(newFile("not-a-directory"))); } @Test public void aFileLeftOpenForReadingIsDeletedAfterACollection() throws IOException { - File data = folder.newFolder("data"); + File data = newFolder("data"); leaveOpenForReading(new File(data, "kept")); - Assert.assertTrue(BattlesRunner.clearRobotData(data, 0)); - Assert.assertEquals(0, data.list().length); + Assertions.assertTrue(BattlesRunner.clearRobotData(data, 0)); + Assertions.assertEquals(0, data.list().length); } @Test public void dataThatCannotBeDeletedIsAFailure() throws IOException { - Assert.assertFalse(BattlesRunner.clearRobotData(folder.newFile("not-a-directory"), 0)); + Assertions.assertFalse(BattlesRunner.clearRobotData(newFile("not-a-directory"), 0)); } private static void leaveOpenForReading(File file) throws IOException { - Assert.assertTrue(file.createNewFile()); + Assertions.assertTrue(file.createNewFile()); new FileInputStream(file).read(); } } diff --git a/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/netengine/ResultsUploadTest.java b/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/netengine/ResultsUploadTest.java index 7a829b79a..0ee75418c 100644 --- a/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/netengine/ResultsUploadTest.java +++ b/robocode.roborumble/src/test/java/net/sf/robocode/roborumble/netengine/ResultsUploadTest.java @@ -8,8 +8,8 @@ package net.sf.robocode.roborumble.netengine; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; /** @@ -21,19 +21,19 @@ public class ResultsUploadTest { public void aHeaderCanHoldSeveralSettings() { String[] header = "game,35,800x600,user,1000,GENERAL,ONE=YES,TWO=YES".split(","); - Assert.assertTrue(ResultsUpload.hasSetting(header, "ONE=YES")); - Assert.assertTrue(ResultsUpload.hasSetting(header, "TWO=YES")); - Assert.assertFalse(ResultsUpload.hasSetting(header, "THREE=YES")); + Assertions.assertTrue(ResultsUpload.hasSetting(header, "ONE=YES")); + Assertions.assertTrue(ResultsUpload.hasSetting(header, "TWO=YES")); + Assertions.assertFalse(ResultsUpload.hasSetting(header, "THREE=YES")); } @Test public void aHeaderFromAnEarlierClientHasNoSettings() { - Assert.assertFalse(ResultsUpload.hasSetting("game,35,800x600,user,1000,GENERAL".split(","), "ONE=YES")); - Assert.assertFalse(ResultsUpload.hasSetting("game,35,800x600,user,1000".split(","), "ONE=YES")); + Assertions.assertFalse(ResultsUpload.hasSetting("game,35,800x600,user,1000,GENERAL".split(","), "ONE=YES")); + Assertions.assertFalse(ResultsUpload.hasSetting("game,35,800x600,user,1000".split(","), "ONE=YES")); } @Test public void onlyTheSettingsCount() { - Assert.assertFalse(ResultsUpload.hasSetting("game,35,800x600,ONE=YES,1000,ONE=YES".split(","), "ONE=YES")); + Assertions.assertFalse(ResultsUpload.hasSetting("game,35,800x600,ONE=YES,1000,ONE=YES".split(","), "ONE=YES")); } } diff --git a/robocode.tests/build.gradle.kts b/robocode.tests/build.gradle.kts index 2f2d30ce5..21ed3c860 100644 --- a/robocode.tests/build.gradle.kts +++ b/robocode.tests/build.gradle.kts @@ -5,7 +5,9 @@ plugins { dependencies { implementation(project(":robocode.api")) - implementation(testLibs.junit) + implementation(testLibs.junit.jupiter) + implementation(testLibs.hamcrest) + testRuntimeOnly(testLibs.junit.platform.launcher) testImplementation(project(":robocode.core")) testImplementation(project(":robocode.host")) diff --git a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/Assert.java b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/Assert.java index 8d2d5a0e2..a049b80ab 100644 --- a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/Assert.java +++ b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/Assert.java @@ -8,15 +8,26 @@ package net.sf.robocode.test.helpers; +import org.hamcrest.Matcher; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.Assertions; import robocode.util.Utils; /** * @author Pavel Savara (original) */ -public class Assert extends org.junit.Assert { +public class Assert extends Assertions { public static void assertNear(double v1, double v2) { - org.junit.Assert.assertEquals(v1, v2, Utils.NEAR_DELTA); + assertEquals(v1, v2, Utils.NEAR_DELTA); + } + + public static void assertThat(T t, Matcher matcher) { + MatcherAssert.assertThat(t, matcher); + } + + public static void assertThat(String reason, T t, Matcher matcher) { + MatcherAssert.assertThat(reason, t, matcher); } public static void allAssertNear(double v1, double v2) { @@ -27,9 +38,9 @@ public static void allAssertNear(double v1, double v2) { } } - public static void allAssertThat(T t, org.hamcrest.Matcher tMatcher) { + public static void allAssertThat(T t, Matcher tMatcher) { try { - org.junit.Assert.assertThat(t, tMatcher); + assertThat(t, tMatcher); } catch (Throwable ex) { ex.printStackTrace(System.err); } diff --git a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobocodeTestBed.java b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobocodeTestBed.java index 166d55d77..0ba632b0b 100755 --- a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobocodeTestBed.java +++ b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobocodeTestBed.java @@ -8,8 +8,8 @@ package net.sf.robocode.test.helpers; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import robocode.control.RobotTestBed; import java.io.File; @@ -27,12 +27,12 @@ protected void beforeInit() { super.beforeInit(); } - @Before + @BeforeEach public void before() { super.before(); } - @After + @AfterEach public void after() { super.after(); } diff --git a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobotRejectedTestBed.java b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobotRejectedTestBed.java index 55658da4f..d9ffdfee2 100644 --- a/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobotRejectedTestBed.java +++ b/robocode.tests/src/main/java/net/sf/robocode/test/helpers/RobotRejectedTestBed.java @@ -8,7 +8,7 @@ package net.sf.robocode.test.helpers; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** @@ -39,7 +39,7 @@ protected int getExpectedErrors() { @Override protected void runTeardown() { // The error is e.g. "Can't load 'x.Robot' because it is an invalid robot or team." or "Could not load robot: x.Robot" - Assert.assertTrue("Robot must be rejected: " + getRobotName() + "\n" + errorText, - errorText.toString().contains(getRobotName())); + Assert.assertTrue(errorText.toString().contains(getRobotName()), + "Robot must be rejected: " + getRobotName() + "\n" + errorText); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/core/util/AlphanumericComparatorTest.java b/robocode.tests/src/test/java/net/sf/robocode/test/core/util/AlphanumericComparatorTest.java index 7a3acd673..b863996ca 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/core/util/AlphanumericComparatorTest.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/core/util/AlphanumericComparatorTest.java @@ -12,8 +12,8 @@ import net.sf.robocode.util.AlphanumericComparator; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; /** diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassLoaderTest.java b/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassLoaderTest.java index f5f20829c..16654eb7b 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassLoaderTest.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassLoaderTest.java @@ -13,9 +13,9 @@ import net.sf.robocode.host.security.RobotClassLoader; import net.sf.robocode.io.Logger; import net.sf.robocode.security.HiddenAccess; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; @@ -31,7 +31,7 @@ public class RobotClassLoaderTest { final String badRobot = "tested.robots.IncludeNamespaceAttack"; final String goodRobot = "tested.robots.Ahead"; - @BeforeClass + @BeforeAll public static void init() throws IOException { HiddenAccess.initContainer(); try { @@ -71,24 +71,30 @@ public void robotAllowedMain() throws ClassNotFoundException { Assert.assertEquals(cl, c.getClassLoader()); } - @Test(expected = ClassNotFoundException.class) + @Test public void robotBlockedBad() throws ClassNotFoundException { - RobotClassLoader cl = new RobotClassLoader(classPath, badRobot); + Assert.assertThrows(ClassNotFoundException.class, () -> { + RobotClassLoader cl = new RobotClassLoader(classPath, badRobot); - cl.loadRobotMainClass(true); + cl.loadRobotMainClass(true); + }); } - @Test(expected = ClassNotFoundException.class) + @Test public void robotBlockedRobocode() throws ClassNotFoundException { - RobotClassLoader cl = new RobotClassLoader(classPath, goodRobot); + Assert.assertThrows(ClassNotFoundException.class, () -> { + RobotClassLoader cl = new RobotClassLoader(classPath, goodRobot); - cl.loadClass("net.sf.robocode.host.proxies.BasicRobotProxy"); + cl.loadClass("net.sf.robocode.host.proxies.BasicRobotProxy"); + }); } - @Test(expected = ClassNotFoundException.class) + @Test public void robotBlockedControl() throws ClassNotFoundException { - RobotClassLoader cl = new RobotClassLoader(classPath, goodRobot); + Assert.assertThrows(ClassNotFoundException.class, () -> { + RobotClassLoader cl = new RobotClassLoader(classPath, goodRobot); - cl.loadClass("robocode.control.RobocodeEngine"); + cl.loadClass("robocode.control.RobocodeEngine"); + }); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassVerifierTest.java b/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassVerifierTest.java index d27bba107..d021e880f 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassVerifierTest.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/host/security/RobotClassVerifierTest.java @@ -12,9 +12,9 @@ import net.sf.robocode.host.security.RobotClassLoader; import net.sf.robocode.io.Logger; import net.sf.robocode.security.HiddenAccess; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; @@ -49,7 +49,7 @@ public class RobotClassVerifierTest { "RobocodeFileOutputStreamAttack.class", "ThreadLimitAttack.class"); - @BeforeClass + @BeforeAll public static void init() throws IOException { HiddenAccess.initContainer(); try { @@ -110,7 +110,7 @@ public void attackRobotsAreRejected() { cl.cleanup(); } } - Assert.assertTrue(failures.toString(), failures.isEmpty()); + Assert.assertTrue(failures.isEmpty(), failures.toString()); } @Test @@ -120,7 +120,7 @@ public void sampleAndLegalTestRobotsAreAllowed() { for (String packageName : new String[] {"sample", "sampleex", "samplesentry", "sampleteam", "tested.robots"}) { File[] files = new File(robotsDir, packageName.replace('.', File.separatorChar)).listFiles(); - Assert.assertNotNull("Missing robot directory for package: " + packageName, files); + Assert.assertNotNull(files, "Missing robot directory for package: " + packageName); for (File file : files) { String name = file.getName(); @@ -132,7 +132,7 @@ public void sampleAndLegalTestRobotsAreAllowed() { } } } - Assert.assertTrue("Too few robots found: " + robots, robots.size() > 40); + Assert.assertTrue(robots.size() > 40, "Too few robots found: " + robots); List failures = new ArrayList(); @@ -146,19 +146,21 @@ public void sampleAndLegalTestRobotsAreAllowed() { cl.cleanup(); } } - Assert.assertTrue(failures.toString(), failures.isEmpty()); + Assert.assertTrue(failures.isEmpty(), failures.toString()); } - @Test(expected = ClassNotFoundException.class) + @Test public void robotBlockedFromHostLibraries() throws ClassNotFoundException { - final String hostLibraryClass = "org.picocontainer.DefaultPicoContainer"; + Assert.assertThrows(ClassNotFoundException.class, () -> { + final String hostLibraryClass = "org.picocontainer.DefaultPicoContainer"; - // The library is available for the game engine ... - Assert.assertNotNull(Container.systemLoader.loadClass(hostLibraryClass)); + // The library is available for the game engine ... + Assert.assertNotNull(Container.systemLoader.loadClass(hostLibraryClass)); - // ... but not for robots - RobotClassLoader cl = new RobotClassLoader(classPath, "tested.robots.Ahead"); + // ... but not for robots + RobotClassLoader cl = new RobotClassLoader(classPath, "tested.robots.Ahead"); - cl.loadClass(hostLibraryClass); + cl.loadClass(hostLibraryClass); + }); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAcceleration.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAcceleration.java index 6a2f2bfdf..a7b76abcc 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAcceleration.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAcceleration.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAwtAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAwtAttack.java index 42a2a2b3f..c4c5ff886 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAwtAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestAwtAttack.java @@ -11,7 +11,7 @@ import net.sf.robocode.io.Logger; import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.swing.*; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBodyTurnRate.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBodyTurnRate.java index 5b2f85a6d..3c5a21cb2 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBodyTurnRate.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBodyTurnRate.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBulletPower.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBulletPower.java index e11b20d02..744a536d5 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBulletPower.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestBulletPower.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; @@ -60,6 +60,6 @@ public void onTurnEnded(TurnEndedEvent event) { } private void test(IRobotSnapshot gh, String s) { - Assert.assertTrue(gh.getOutputStreamSnapshot() + " expected " + s, gh.getOutputStreamSnapshot().contains(s)); + Assert.assertTrue(gh.getOutputStreamSnapshot().contains(s), gh.getOutputStreamSnapshot() + " expected " + s); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestClassForName.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestClassForName.java index 39e5817ff..8a7640fdc 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestClassForName.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestClassForName.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ClassForName; @@ -42,7 +42,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Robot could not use Class.forName(String):\n" + output, - output.toString().contains(ClassForName.OK_MESSAGE + "tested.robots.Ahead")); + Assert.assertTrue(output.toString().contains(ClassForName.OK_MESSAGE + "tested.robots.Ahead"), + "Robot could not use Class.forName(String):\n" + output); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorAwtAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorAwtAttack.java index eae5ee29e..e5a55ee6e 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorAwtAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorAwtAttack.java @@ -11,7 +11,7 @@ import net.sf.robocode.io.Logger; import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.swing.*; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorReflectionAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorReflectionAttack.java index 978d24253..f3656e6bf 100755 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorReflectionAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestConstructorReflectionAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; @@ -38,9 +38,9 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Reflection is not allowed:\n" + output, - output.toString().contains("java.lang.System.out cannot be made accessible")); - Assert.assertFalse("Robot used reflection", output.toString().contains("Hello World")); + Assert.assertTrue(output.toString().contains("java.lang.System.out cannot be made accessible"), + "Reflection is not allowed:\n" + output); + Assert.assertFalse(output.toString().contains("Hello World"), "Robot used reflection"); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestCustomEvents.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestCustomEvents.java index 587fde4d2..69efbac44 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestCustomEvents.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestCustomEvents.java @@ -8,7 +8,7 @@ package net.sf.robocode.test.robots; -import org.junit.Test; +import org.junit.jupiter.api.Test; import net.sf.robocode.test.helpers.RobocodeTestBed; import net.sf.robocode.test.helpers.Assert; import robocode.control.events.TurnEndedEvent; @@ -55,7 +55,7 @@ public void onTurnEnded(TurnEndedEvent event) { } private void test(IRobotSnapshot gh, String s) { - Assert.assertTrue("got: " + gh.getOutputStreamSnapshot() + ", expected: " + s, - gh.getOutputStreamSnapshot().contains(s)); + Assert.assertTrue(gh.getOutputStreamSnapshot().contains(s), + "got: " + gh.getOutputStreamSnapshot() + ", expected: " + s); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDataFileAccess.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDataFileAccess.java index 333ce115c..599d9f8ce 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDataFileAccess.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDataFileAccess.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.DataFileAccess; @@ -41,6 +41,6 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Robot could not access its data file:\n" + output, output.toString().contains(DataFileAccess.OK_MESSAGE)); + Assert.assertTrue(output.toString().contains(DataFileAccess.OK_MESSAGE), "Robot could not access its data file:\n" + output); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDeserializationAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDeserializationAttack.java index 2b3fc0533..fbd1e30a6 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDeserializationAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDeserializationAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.DeserializationAttack; @@ -43,9 +43,9 @@ public void onTurnEnded(TurnEndedEvent event) { protected void runTeardown() { String out = output.toString(); - Assert.assertTrue("Robot could not deserialize its own data", out.contains(DeserializationAttack.OWN_DATA_MESSAGE)); - Assert.assertFalse("Robot deserialized a class that is not allowed", - out.contains(DeserializationAttack.DESERIALIZED_MESSAGE)); - Assert.assertTrue("Deserialization was not prevented", out.contains(DeserializationAttack.PREVENTED_MESSAGE)); + Assert.assertTrue(out.contains(DeserializationAttack.OWN_DATA_MESSAGE), "Robot could not deserialize its own data"); + Assert.assertFalse(out.contains(DeserializationAttack.DESERIALIZED_MESSAGE), + "Robot deserialized a class that is not allowed"); + Assert.assertTrue(out.contains(DeserializationAttack.PREVENTED_MESSAGE), "Deserialization was not prevented"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDuplicatesAndScore.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDuplicatesAndScore.java index de235fdcd..128db04e3 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDuplicatesAndScore.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestDuplicatesAndScore.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; import static org.hamcrest.CoreMatchers.is; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.BattleResults; import robocode.control.events.BattleCompletedEvent; import robocode.control.events.BattleFinishedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestEventPriorityFilter.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestEventPriorityFilter.java index fb2f5ca55..a01ddc621 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestEventPriorityFilter.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestEventPriorityFilter.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFairPlay.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFairPlay.java index 47c7773d9..3bf15898e 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFairPlay.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFairPlay.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.BattleFinishedEvent; import robocode.control.events.TurnEndedEvent; @@ -62,11 +62,11 @@ public void onBattleFinished(BattleFinishedEvent event) { double minTotal = Math.min(score1.getTotalScore(), score2.getTotalScore()); double maxTotal = Math.max(score1.getTotalScore(), score2.getTotalScore()); - Assert.assertTrue("The total scores should be almost the same", maxTotal / minTotal <= 1.08); + Assert.assertTrue(maxTotal / minTotal <= 1.08, "The total scores should be almost the same"); double minFirsts = Math.min(score1.getTotalFirsts(), score2.getTotalFirsts()); double maxFirsts = Math.max(score1.getTotalFirsts(), score2.getTotalFirsts()); - Assert.assertTrue("The total firsts should be almost the same", maxFirsts / minFirsts <= 1.08); + Assert.assertTrue(maxFirsts / minFirsts <= 1.08, "The total firsts should be almost the same"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileAttack.java index 259d59626..d9efcd501 100755 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileAttack.java @@ -36,6 +36,6 @@ protected void runSetup() { @Override protected void runTeardown() { super.runTeardown(); - Assert.assertFalse("Found attack file", new File("C:\\Robocode.attack").exists()); + Assert.assertFalse(new File("C:\\Robocode.attack").exists(), "Found attack file"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileDeleteAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileDeleteAttack.java index 12ede42be..5d8badc7b 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileDeleteAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileDeleteAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import tested.robots.FileDeleteAttack; import java.io.File; @@ -24,9 +24,11 @@ */ public class TestFileDeleteAttack extends RobocodeTestBed { - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -42,7 +44,7 @@ private File getVictimFile() { protected void runSetup() { try { File victim = getVictimFile(); - Assert.assertTrue("Could not create victim file", victim.exists() || victim.createNewFile()); + Assert.assertTrue(victim.exists() || victim.createNewFile(), "Could not create victim file"); } catch (IOException e) { throw new AssertionError(e); } @@ -54,6 +56,6 @@ protected void runTeardown() { boolean exists = victim.exists(); victim.delete(); - Assert.assertTrue("Robot deleted a file outside its data directory: " + victim, exists); + Assert.assertTrue(exists, "Robot deleted a file outside its data directory: " + victim); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileListAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileListAttack.java index 5795477d9..d322919b1 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileListAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileListAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.FileListAttack; @@ -23,9 +23,11 @@ public class TestFileListAttack extends RobocodeTestBed { private final StringBuilder output = new StringBuilder(); - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -41,7 +43,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertFalse("Robot listed a directory outside its directories", - output.toString().contains(FileListAttack.LISTED_MESSAGE)); + Assert.assertFalse(output.toString().contains(FileListAttack.LISTED_MESSAGE), + "Robot listed a directory outside its directories"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileReadAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileReadAttack.java index 62da3ba19..a29c0293d 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileReadAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileReadAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.FileReadAttack; @@ -29,9 +29,11 @@ public class TestFileReadAttack extends RobocodeTestBed { private final StringBuilder output = new StringBuilder(); - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -63,6 +65,6 @@ protected void runSetup() { @Override protected void runTeardown() { getVictimFile().delete(); - Assert.assertFalse("Robot read a file outside its directories", output.toString().contains(SECRET)); + Assert.assertFalse(output.toString().contains(SECRET), "Robot read a file outside its directories"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWrite.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWrite.java index d046443a9..39f95e6f3 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWrite.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWrite.java @@ -10,8 +10,8 @@ import net.sf.robocode.io.Logger; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import java.io.File; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWriteSize.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWriteSize.java index cf2cfdec4..2ae2cbc09 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWriteSize.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestFileWriteSize.java @@ -11,8 +11,8 @@ import java.io.File; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; @@ -67,10 +67,10 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Data quota must be 200000", messagedDataQuota); - Assert.assertTrue("Data directory path is wrong", messagedDataDirectory); - Assert.assertTrue("Data file path is wrong", messagedDataFile); - Assert.assertTrue("Error must be output that file quota has been exceeded", messageQuotaReached); - Assert.assertTrue("Game must terminate the robot", robotTerminated); + Assert.assertTrue(messagedDataQuota, "Data quota must be 200000"); + Assert.assertTrue(messagedDataDirectory, "Data directory path is wrong"); + Assert.assertTrue(messagedDataFile, "Data file path is wrong"); + Assert.assertTrue(messageQuotaReached, "Error must be output that file quota has been exceeded"); + Assert.assertTrue(robotTerminated, "Game must terminate the robot"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunHeat.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunHeat.java index e1a9e5a52..81d45fea5 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunHeat.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunHeat.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; @@ -85,7 +85,7 @@ public void onTurnEnded(TurnEndedEvent event) { } private void test(IRobotSnapshot gh, String s) { - Assert.assertTrue(gh.getOutputStreamSnapshot() + " expected " + s, - gh.getOutputStreamSnapshot().contains("after fire: " + s)); + Assert.assertTrue(gh.getOutputStreamSnapshot().contains("after fire: " + s), + gh.getOutputStreamSnapshot() + " expected " + s); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunTurnRate.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunTurnRate.java index d9d9fb595..c4583d881 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunTurnRate.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestGunTurnRate.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNames.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNames.java index 3cd99f9f2..11cbeb99b 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNames.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNames.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.BattleSpecification; import robocode.control.RobotSpecification; import robocode.control.events.TurnEndedEvent; @@ -28,7 +28,7 @@ public class TestHiddenNames extends RobocodeTestBed { @Test public void run() { super.run(); - Assert.assertTrue("The robot never saw a hidden name", sawHiddenName); + Assert.assertTrue(sawHiddenName, "The robot never saw a hidden name"); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNamesInTeam.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNamesInTeam.java index a74f65052..6e7d5d0ff 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNamesInTeam.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestHiddenNamesInTeam.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.BattleSpecification; import robocode.control.RobotSpecification; import robocode.control.events.TurnEndedEvent; @@ -29,7 +29,7 @@ public class TestHiddenNamesInTeam extends RobocodeTestBed { @Test public void run() { super.run(); - Assert.assertTrue("The robot was never hit by a robot with a hidden name", sawHiddenName); + Assert.assertTrue(sawHiddenName, "The robot was never hit by a robot with a hidden name"); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestInteruptibleEvent.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestInteruptibleEvent.java index 3d132bf60..e95a69bf2 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestInteruptibleEvent.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestInteruptibleEvent.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestJunior.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestJunior.java index 3d1267909..ca4118ed9 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestJunior.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestJunior.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; @@ -53,6 +53,6 @@ public void onTurnEnded(TurnEndedEvent event) { } private void test(String out, String in) { - Assert.assertTrue(in, out.contains(in)); + Assert.assertTrue(out.contains(in), in); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLeftOpenFile.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLeftOpenFile.java index 0327a5f85..141e0a74e 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLeftOpenFile.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLeftOpenFile.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.BattleMessageEvent; import robocode.control.events.TurnEndedEvent; @@ -32,9 +32,9 @@ public class TestLeftOpenFile extends RobocodeTestBed { @Test public void run() { super.run(); - Assert.assertNotNull("The robot did not write its file", dataFile); - Assert.assertTrue("There was no warning about the open file", warned); - Assert.assertTrue("The file could not be deleted after the battle", new File(dataFile).delete()); + Assert.assertNotNull(dataFile, "The robot did not write its file"); + Assert.assertTrue(warned, "There was no warning about the open file"); + Assert.assertTrue(new File(dataFile).delete(), "The file could not be deleted after the battle"); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLost.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLost.java index 8cb90712a..d928a6edb 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLost.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestLost.java @@ -9,8 +9,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; @@ -62,8 +62,8 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertEquals("should not get SkippedTurn event", 0, skip); - Assert.assertEquals("always should loose", getNumRounds(), lost); - Assert.assertEquals("should get BattleEnded event", 1, end); + Assert.assertEquals(0, skip, "should not get SkippedTurn event"); + Assert.assertEquals(getNumRounds(), lost, "always should loose"); + Assert.assertEquals(1, end, "should get BattleEnded event"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxTurnRate.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxTurnRate.java index 69cb26a3a..d20666fe7 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxTurnRate.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxTurnRate.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxVelocity.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxVelocity.java index 2901f9193..2c2711a2c 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxVelocity.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestMaxVelocity.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.util.Utils; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestNames.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestNames.java index cce9a652f..f4d7765aa 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestNames.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestNames.java @@ -9,7 +9,7 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPosition.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPosition.java index d843cbcc3..d9e5b92c7 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPosition.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPosition.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; import static org.hamcrest.CoreMatchers.is; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.RoundStartedEvent; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPrivateConstructor.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPrivateConstructor.java index bad3825ea..f72aca9aa 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPrivateConstructor.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestPrivateConstructor.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestProcessExecAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestProcessExecAttack.java index b08edb30a..bd6d7f550 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestProcessExecAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestProcessExecAttack.java @@ -42,6 +42,6 @@ public String getRobotName() { @Override protected void runTeardown() { super.runTeardown(); - Assert.assertFalse("Robot executed a host command", executed); + Assert.assertFalse(executed, "Robot executed a host command"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRadarTurnRateAndSetAdjust.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRadarTurnRateAndSetAdjust.java index ce2b84342..4dfd5d229 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRadarTurnRateAndSetAdjust.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRadarTurnRateAndSetAdjust.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRandom.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRandom.java index 32881f582..4bc1d90d1 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRandom.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRandom.java @@ -10,8 +10,9 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import robocode.control.RandomFactory; import robocode.control.events.BattleStartedEvent; import robocode.control.events.TurnEndedEvent; @@ -43,6 +44,7 @@ public String getEnemyName() { return "tested.robots.Random"; } + @BeforeEach public void before() { super.before(); Assert.assertNear(0.730967, RandomFactory.getRandom().nextDouble()); @@ -83,7 +85,7 @@ public void onTurnEnded(TurnEndedEvent event) { protected void runTeardown() { // The battle is deterministic, as the random numbers of the robots come from the deterministic random number // generator of Robocode, so the robots must always be at the same positions, and the battle must end the same way. - Assert.assertTrue("The positions at turn 200 were not checked", positionsChecked); - Assert.assertEquals("Turn where tested.robots.Random died", 682, randomDeathTurn); + Assert.assertTrue(positionsChecked, "The positions at turn 200 were not checked"); + Assert.assertEquals(682, randomDeathTurn, "Turn where tested.robots.Random died"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRankingsWithTargetRobots.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRankingsWithTargetRobots.java index c26accccc..fcc54ab17 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRankingsWithTargetRobots.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRankingsWithTargetRobots.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; import static org.hamcrest.CoreMatchers.is; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.BattleFinishedEvent; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IScoreSnapshot; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRateControl.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRateControl.java index 5cab4263b..40fbc39d9 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRateControl.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRateControl.java @@ -10,7 +10,7 @@ import static robocode.util.Utils.normalRelativeAngle; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.RoundStartedEvent; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAccessibleAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAccessibleAttack.java index 83ef8a168..400ee6e89 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAccessibleAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAccessibleAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ReflectionAccessibleAttack; @@ -23,9 +23,11 @@ public class TestReflectionAccessibleAttack extends RobocodeTestBed { private final StringBuilder output = new StringBuilder(); - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -41,7 +43,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertFalse("Robot got hold of the robot peer", - output.toString().contains(ReflectionAccessibleAttack.PEER_MESSAGE)); + Assert.assertFalse(output.toString().contains(ReflectionAccessibleAttack.PEER_MESSAGE), + "Robot got hold of the robot peer"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAttack.java index 59303909d..f6edb4198 100755 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; @@ -38,9 +38,9 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Reflection is not allowed:\n" + output, - output.toString().contains("java.lang.System.out cannot be made accessible")); - Assert.assertFalse("Robot used reflection", output.toString().contains("Hello World")); + Assert.assertTrue(output.toString().contains("java.lang.System.out cannot be made accessible"), + "Reflection is not allowed:\n" + output); + Assert.assertFalse(output.toString().contains("Hello World"), "Robot used reflection"); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionExecAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionExecAttack.java index 1ab5c03db..0c21ca4d9 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionExecAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionExecAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ReflectionExecAttack; @@ -23,9 +23,11 @@ public class TestReflectionExecAttack extends RobocodeTestBed { private final StringBuilder output = new StringBuilder(); - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -41,7 +43,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertFalse("Robot executed a host command via reflection", - output.toString().contains(ReflectionExecAttack.EXECUTED_MESSAGE)); + Assert.assertFalse(output.toString().contains(ReflectionExecAttack.EXECUTED_MESSAGE), + "Robot executed a host command via reflection"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionOnOwnClasses.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionOnOwnClasses.java index 7b2dcf07f..25bb764e1 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionOnOwnClasses.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReflectionOnOwnClasses.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ReflectionOnOwnClasses; @@ -41,7 +41,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Robot could not use reflection on its own classes:\n" + output, - output.toString().contains(ReflectionOnOwnClasses.OK_MESSAGE)); + Assert.assertTrue(output.toString().contains(ReflectionOnOwnClasses.OK_MESSAGE), + "Robot could not use reflection on its own classes:\n" + output); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestResourceTraversalAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestResourceTraversalAttack.java index 68691d28c..a686f203d 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestResourceTraversalAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestResourceTraversalAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ResourceTraversalAttack; @@ -63,7 +63,7 @@ protected void runSetup() { @Override protected void runTeardown() { getVictimFile().delete(); - Assert.assertFalse("Robot read a file outside its class path", output.toString().contains(SECRET)); - Assert.assertTrue("Robot did not run", output.toString().contains("Resource not found")); + Assert.assertFalse(output.toString().contains(SECRET), "Robot read a file outside its class path"); + Assert.assertTrue(output.toString().contains("Resource not found"), "Robot did not run"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReverseDirection.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReverseDirection.java index 85465c8e9..0491197d9 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReverseDirection.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestReverseDirection.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.util.Utils; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobocodeFileOutputStreamAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobocodeFileOutputStreamAttack.java index 772c43bff..af92b9515 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobocodeFileOutputStreamAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobocodeFileOutputStreamAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import tested.robots.RobocodeFileOutputStreamAttack; import java.io.File; @@ -23,9 +23,11 @@ */ public class TestRobocodeFileOutputStreamAttack extends RobocodeTestBed { - @Test(expected = SecurityException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(SecurityException.class, () -> { + super.run(); + }); } @Override @@ -54,6 +56,6 @@ protected void runTeardown() { if (found) { attack.delete(); } - Assert.assertFalse("Found attack file outside the robot data directory: " + attack, found); + Assert.assertFalse(found, "Found attack file outside the robot data directory: " + attack); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobotDeathEvents.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobotDeathEvents.java index 51a024b74..12aa0ac15 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobotDeathEvents.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestRobotDeathEvents.java @@ -11,7 +11,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScore.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScore.java index c8abb2c11..5c666b574 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScore.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScore.java @@ -8,33 +8,30 @@ package net.sf.robocode.test.robots; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import robocode.control.events.BattleCompletedEvent; import robocode.util.Utils; -import java.util.Arrays; +import java.util.stream.Stream; /** * Statistical score test with multiple opponents * * @author Pavel Savara (original) */ -@RunWith(Parameterized.class) public class TestScore extends RobocodeTestBed { String enemy; int expectedScore; - @Parameterized.Parameters(name = "{index}: Test with {0}, expected score: {1}") - public static Iterable battles() { - return Arrays.asList(new Object[][]{ - {"tested.robots.Random", 5000}, - {"sample.SittingDuck", 5000}, - {"sample.Corners", 4500}, - {"sample.Fire", 4000}, - }); + static Stream battles() { + return Stream.of( + Arguments.of("tested.robots.Random", 5000), + Arguments.of("sample.SittingDuck", 5000), + Arguments.of("sample.Corners", 4500), + Arguments.of("sample.Fire", 4000)); } public void onBattleCompleted(final BattleCompletedEvent event) { @@ -42,13 +39,11 @@ public void onBattleCompleted(final BattleCompletedEvent event) { Utils.assertTrue("Score has to be at least " + expectedScore + " but was " + actualScore, actualScore > expectedScore); } - public TestScore(String enemy, int expectedScore) { + @ParameterizedTest(name = "{index}: Test with {0}, expected score: {1}") + @MethodSource("battles") + public void run(String enemy, int expectedScore) { this.enemy = enemy; this.expectedScore = expectedScore; - } - - @Test - public void run() { super.run(); } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScoring.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScoring.java index 78ecb11e0..1636949bd 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScoring.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestScoring.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.BattleFinishedEvent; import robocode.control.events.RoundEndedEvent; import robocode.control.events.TurnEndedEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTooManyTurns.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTooManyTurns.java index d070da63e..1beaca2b4 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTooManyTurns.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTooManyTurns.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; import robocode.control.snapshot.RobotState; @@ -50,7 +50,7 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("The robot was not told that it has skipped too many turns", messagedNoActions); - Assert.assertTrue("The robot was not killed for skipping too many turns", died); + Assert.assertTrue(messagedNoActions, "The robot was not told that it has skipped too many turns"); + Assert.assertTrue(died, "The robot was not killed for skipping too many turns"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTurns.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTurns.java index 3d633bae5..5bc981b2f 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTurns.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestSkippedTurns.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; @@ -43,6 +43,6 @@ public String getRobotName() { @Override protected void runTeardown() { - Assert.assertTrue("Robot did not receive a SkippedTurnEvent", messagedEvent); + Assert.assertTrue(messagedEvent, "Robot did not receive a SkippedTurnEvent"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadLimitAttack.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadLimitAttack.java index b324e01be..804f95844 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadLimitAttack.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadLimitAttack.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; @@ -40,8 +40,8 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Robot was not punished for creating too many threads:\n" + output, - output.toString().contains("SYSTEM: Robots are only allowed to create up to 5 threads!")); + Assert.assertTrue(output.toString().contains("SYSTEM: Robots are only allowed to create up to 5 threads!"), + "Robot was not punished for creating too many threads:\n" + output); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadsWithinLimit.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadsWithinLimit.java index f7e67773a..c8f4925e0 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadsWithinLimit.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThreadsWithinLimit.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import tested.robots.ThreadsWithinLimit; @@ -41,9 +41,9 @@ public void onTurnEnded(TurnEndedEvent event) { @Override protected void runTeardown() { - Assert.assertTrue("Robot could not use threads:\n" + output, - output.toString().contains(ThreadsWithinLimit.OK_MESSAGE)); - Assert.assertFalse("Robot was punished for using threads", output.toString().contains("SYSTEM: Preventing") - || output.toString().contains("only allowed to create")); + Assert.assertTrue(output.toString().contains(ThreadsWithinLimit.OK_MESSAGE), + "Robot could not use threads:\n" + output); + Assert.assertFalse(output.toString().contains("SYSTEM: Preventing") + || output.toString().contains("only allowed to create"), "Robot was punished for using threads"); } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThrowing.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThrowing.java index c6c5cd78c..7c7f752b4 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThrowing.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestThrowing.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.RobocodeEngine; import robocode.control.events.BattleErrorEvent; @@ -23,9 +23,11 @@ */ public class TestThrowing extends RobocodeTestBed { - @Test(expected = NullPointerException.class) + @Test public void run() { - super.run(); + Assert.assertThrows(NullPointerException.class, () -> { + super.run(); + }); } @Override diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestUndeadThread.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestUndeadThread.java index 35c4666cb..589bdb69f 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestUndeadThread.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestUndeadThread.java @@ -10,7 +10,7 @@ import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Test; +import org.junit.jupiter.api.Test; import robocode.control.events.BattleErrorEvent; diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWatchBullet.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWatchBullet.java index a6bf03b33..1d8a671e9 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWatchBullet.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWatchBullet.java @@ -10,8 +10,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.control.events.TurnEndedEvent; import robocode.control.snapshot.IRobotSnapshot; @@ -44,7 +44,7 @@ public void onTurnEnded(TurnEndedEvent event) { private void test(String out, int timecurr, int timeWatch, String in) { if (timecurr == timeWatch) { - Assert.assertTrue("got: " + out + ", expected: " + in, out.contains(in)); + Assert.assertTrue(out.contains(in), "got: " + out + ", expected: " + in); } } } diff --git a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWin.java b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWin.java index 4452b8f4d..d9c421ace 100644 --- a/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWin.java +++ b/robocode.tests/src/test/java/net/sf/robocode/test/robots/TestWin.java @@ -9,8 +9,8 @@ import net.sf.robocode.test.helpers.RobocodeTestBed; -import org.junit.Assert; -import org.junit.Test; +import net.sf.robocode.test.helpers.Assert; +import org.junit.jupiter.api.Test; import robocode.BattleResults; import robocode.control.events.BattleCompletedEvent; import robocode.control.events.TurnEndedEvent; @@ -81,27 +81,27 @@ protected void runTeardown() { } } - Assert.assertEquals("Should have exactly one BattleEnded!", 1, count(events, "BattleEnded!")); - Assert.assertEquals("Should have five RoundEnded!", 5, count(events, "RoundEnded!")); - Assert.assertEquals("Win! + Death! should equal 5", 5, count(events, "Win!") + count(events, "Death!")); + Assert.assertEquals(1, count(events, "BattleEnded!"), "Should have exactly one BattleEnded!"); + Assert.assertEquals(5, count(events, "RoundEnded!"), "Should have five RoundEnded!"); + Assert.assertEquals(5, count(events, "Win!") + count(events, "Death!"), "Win! + Death! should equal 5"); // The output must contain each round header exactly once for this robot. - Assert.assertTrue("Missing round header", outputBuf.toString().contains("Round 1 of 5")); - Assert.assertTrue("Missing round header", outputBuf.toString().contains("Round 2 of 5")); - Assert.assertTrue("Missing round header", outputBuf.toString().contains("Round 3 of 5")); - Assert.assertTrue("Missing round header", outputBuf.toString().contains("Round 4 of 5")); - Assert.assertTrue("Missing round header", outputBuf.toString().contains("Round 5 of 5")); + Assert.assertTrue(outputBuf.toString().contains("Round 1 of 5"), "Missing round header"); + Assert.assertTrue(outputBuf.toString().contains("Round 2 of 5"), "Missing round header"); + Assert.assertTrue(outputBuf.toString().contains("Round 3 of 5"), "Missing round header"); + Assert.assertTrue(outputBuf.toString().contains("Round 4 of 5"), "Missing round header"); + Assert.assertTrue(outputBuf.toString().contains("Round 5 of 5"), "Missing round header"); // Check that at least one Win! was received (BattleWin must win some rounds). - Assert.assertTrue("BattleWin should win at least one round", count(events, "Win!") > 0); + Assert.assertTrue(count(events, "Win!") > 0, "BattleWin should win at least one round"); // Score verification - results are sorted by score descending. - Assert.assertNotNull("Battle results should not be null", results); - Assert.assertEquals("Expected 2 robots in results", 2, results.length); - Assert.assertTrue("Winner score must be positive", results[0].getScore() > 0); - Assert.assertTrue("Loser score must be positive", results[1].getScore() > 0); - Assert.assertTrue("Winner must have >= loser score", - results[0].getScore() >= results[1].getScore()); + Assert.assertNotNull(results, "Battle results should not be null"); + Assert.assertEquals(2, results.length, "Expected 2 robots in results"); + Assert.assertTrue(results[0].getScore() > 0, "Winner score must be positive"); + Assert.assertTrue(results[1].getScore() > 0, "Loser score must be positive"); + Assert.assertTrue(results[0].getScore() >= results[1].getScore(), + "Winner must have >= loser score"); } private static int count(List list, String item) {