diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/EqualityUtilsTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/EqualityUtilsTest.java index 885f8f8c1..7f961d09f 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/EqualityUtilsTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/EqualityUtilsTest.java @@ -13,10 +13,6 @@ public class EqualityUtilsTest extends UtilityClassTest { - public EqualityUtilsTest() { - super(EqualityUtils.class); - } - @Test public void isEqualInvalidPrimativeTest() { assertThrows(UnsupportedOperationException.class, () -> EqualityUtils.isEqual(new long[0], new long[0])); diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/FxUtilsTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/FxUtilsTest.java index def5b9e57..94fed328d 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/FxUtilsTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/FxUtilsTest.java @@ -24,10 +24,6 @@ public class FxUtilsTest extends UtilityClassTest { - public FxUtilsTest() { - super(FxUtils.class); - } - @Nested public class FxTests extends ApplicationTest { diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/MapsTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/MapsTest.java index b9c2f353d..bc81a89c6 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/MapsTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/MapsTest.java @@ -10,10 +10,6 @@ public class MapsTest extends UtilityClassTest { - public MapsTest() { - super(Maps.class); - } - @Test public void builderEmptyTest() { Map map = Maps.builder().build(); diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/NetworkTableUtilsTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/NetworkTableUtilsTest.java index 6beedc33d..7986bf3f8 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/NetworkTableUtilsTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/NetworkTableUtilsTest.java @@ -13,10 +13,6 @@ public class NetworkTableUtilsTest extends UtilityClassTest { - public NetworkTableUtilsTest() { - super(NetworkTableUtils.class); - } - @ParameterizedTest @CsvSource({"simple, simple", "simple, one/two/many/simple", diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/PropertyUtilsTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/PropertyUtilsTest.java index b5836fb19..1eaea2740 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/PropertyUtilsTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/PropertyUtilsTest.java @@ -9,10 +9,6 @@ public class PropertyUtilsTest extends UtilityClassTest { - public PropertyUtilsTest() { - super(PropertyUtils.class); - } - @Test @SuppressWarnings("LocalVariableName") public void testCombineLists() { diff --git a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/UtilityClassTest.java b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/UtilityClassTest.java index b88f2314f..bd5876f46 100644 --- a/api/src/test/java/edu/wpi/first/shuffleboard/api/util/UtilityClassTest.java +++ b/api/src/test/java/edu/wpi/first/shuffleboard/api/util/UtilityClassTest.java @@ -1,35 +1,40 @@ package edu.wpi.first.shuffleboard.api.util; -import org.junit.jupiter.api.Test; +import com.google.common.reflect.TypeToken; +import org.junit.jupiter.api.DynamicTest; +import org.junit.jupiter.api.TestFactory; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; @SuppressWarnings("PMD.AbstractClassWithoutAbstractMethod") public abstract class UtilityClassTest { - private final Class clazz; + private final Class clazz; - public UtilityClassTest(Class clazz) { - this.clazz = clazz; + public UtilityClassTest() { + this.clazz = (new TypeToken(getClass()) {}).getRawType(); } - @Test - public void testConstructorPrivate() throws NoSuchMethodException { - Constructor constructor = clazz.getDeclaredConstructor(); - - assertFalse(constructor.isAccessible()); + @TestFactory + public Stream constructorsPrivateDynamicTests() { + return DynamicTest.stream(Arrays.asList(clazz.getDeclaredConstructors()).iterator(), Constructor::getName, + constructor -> assertTrue(Modifier.isPrivate(constructor.getModifiers()), + String.format("The Utility class %s has a non-private constructor.", clazz.getName()))); } - @Test - public void testConstructorReflection() { - assertThrows(InvocationTargetException.class, () -> { - Constructor constructor = clazz.getDeclaredConstructor(); - constructor.setAccessible(true); - constructor.newInstance(); - }); + @TestFactory + public Stream constructorsReflectionDynamicTests() { + return DynamicTest.stream(Arrays.asList(clazz.getDeclaredConstructors()).iterator(), Constructor::getName, + constructor -> assertThrows(InvocationTargetException.class, () -> { + constructor.setAccessible(true); + constructor.newInstance(); + }, String.format("The Utility class %s has a non-private constructor.", clazz.getName()))); } } diff --git a/build.gradle.kts b/build.gradle.kts index e88489f75..fa21dfd2a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -42,12 +42,12 @@ subprojects { } dependencies { - fun junitJupiter(name: String, version: String = "5.0.0-M5") = + fun junitJupiter(name: String, version: String = "5.0.0-RC2") = create(group = "org.junit.jupiter", name = name, version = version) "testCompile"(junitJupiter(name = "junit-jupiter-api")) "testCompile"(junitJupiter(name = "junit-jupiter-engine")) "testCompile"(junitJupiter(name = "junit-jupiter-params")) - "testRuntime"(create(group = "org.junit.platform", name = "junit-platform-launcher", version = "1.0.0-M5")) + "testRuntime"(create(group = "org.junit.platform", name = "junit-platform-launcher", version = "1.0.0-RC2")) fun testFx(name: String, version: String = "4.0.+") = create(group = "org.testfx", name = name, version = version) "testCompile"(testFx(name = "testfx-core"))