Skip to content

Commit

Permalink
Migrate unit tests to JUnit Jupiter
Browse files Browse the repository at this point in the history
  • Loading branch information
jeantessier committed Jan 10, 2025
1 parent 5ba9d4e commit 4020ca2
Show file tree
Hide file tree
Showing 13 changed files with 320 additions and 383 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,43 +32,38 @@

package com.jeantessier.classreader;

import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.*;
import org.junit.jupiter.params.provider.*;

import static org.junit.Assert.*;
import static org.junit.runners.Parameterized.*;
import java.util.stream.*;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.params.provider.Arguments.*;

@RunWith(Parameterized.class)
public class TestDescriptorHelper {
@Parameters(name="SignatureHelper for \"{0}\" should be \"{1}\" with parameter count {2}")
public static Object[][] data() {
return new Object[][] {
{"()V", "()", 0},
{"(I)V", "(int)", 1},
{"(II)V", "(int, int)", 2},
{"([I)V", "(int[])", 1},
{"(Ljava/lang/Object;)V", "(java.lang.Object)", 1},
{"([Ljava/lang/Object;)V", "(java.lang.Object[])", 1},
};
static Stream<Arguments> dataProvider() {
return Stream.of(
arguments("()V", "()", 0),
arguments("(I)V", "(int)", 1),
arguments("(II)V", "(int, int)", 2),
arguments("([I)V", "(int[])", 1),
arguments("(Ljava/lang/Object;)V", "(java.lang.Object)", 1),
arguments("([Ljava/lang/Object;)V", "(java.lang.Object[])", 1)
);
}

@Parameter(0)
public String descriptor;

@Parameter(1)
public String expectedSignature;

@Parameter(2)
public int expectedParameterCount;

@Test
public void testGetSignature() {
assertEquals(expectedSignature, SignatureHelper.getSignature(descriptor));
@DisplayName("DescriptorHelper")
@ParameterizedTest(name="signature for \"{0}\" should be \"{1}\"")
@MethodSource("dataProvider")
public void testGetSignature(String descriptor, String expectedSignature, int expectedParameterCount) {
assertEquals(expectedSignature, DescriptorHelper.getSignature(descriptor));
}

@Test
public void testGetParameterCount() {
assertEquals(expectedParameterCount, SignatureHelper.getParameterCount(descriptor));
@DisplayName("DescriptorHelper")
@ParameterizedTest(name="parameter count for \"{0}\" should be {2}")
@MethodSource("dataProvider")
public void testGetParameterCount(String descriptor, String expectedSignature, int expectedParameterCount) {
assertEquals(expectedParameterCount, DescriptorHelper.getParameterCount(descriptor));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,38 +32,34 @@

package com.jeantessier.classreader;

import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.*;
import org.junit.jupiter.params.provider.*;

import static org.junit.Assert.*;
import static org.junit.runners.Parameterized.*;
import java.util.stream.*;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.params.provider.Arguments.*;

@RunWith(Parameterized.class)
public class TestDescriptorHelper_convert {
@Parameters(name="DescriptorHelper conversion for \"{0}\" should be \"{1}\"")
public static Object[][] data() {
return new Object[][] {
{"I", "int"},
{"[I", "int[]"},
{"package/Class", null},
{"Lpackage/Class;", "package.Class"},
{"[Lpackage/Class;", "package.Class[]"},
{"[[Lpackage/Class;", "package.Class[][]"},
{"TT;", "T"},
{"List", null},
{"Toto", null},
};
static Stream<Arguments> dataProvider() {
return Stream.of(
arguments("I", "int"),
arguments("[I", "int[]"),
arguments("package/Class", null),
arguments("Lpackage/Class;", "package.Class"),
arguments("[Lpackage/Class;", "package.Class[]"),
arguments("[[Lpackage/Class;", "package.Class[][]"),
arguments("TT;", "T"),
arguments("List", null),
arguments("Toto", null)
);
}

@Parameter(0)
public String descriptor;

@Parameter(1)
public String expectedConversion;

@Test
public void testConvert() {
@DisplayName("DescriptorHelper")
@ParameterizedTest(name="conversion of \"{0}\" should be \"{1}\"")
@MethodSource("dataProvider")
public void testConvert(String descriptor, String expectedConversion) {
assertEquals(expectedConversion, DescriptorHelper.convert(descriptor));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,45 +32,40 @@

package com.jeantessier.classreader;

import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.*;
import org.junit.jupiter.params.provider.*;

import static org.junit.Assert.*;
import static org.junit.runners.Parameterized.*;
import java.util.stream.*;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.params.provider.Arguments.*;

@RunWith(Parameterized.class)
public class TestSignatureHelper {
@Parameters(name="SignatureHelper for \"{0}\" should be \"{1}\" with parameter count {2}")
public static Object[][] data() {
return new Object[][] {
{"()V", "()", 0},
{"<T:Ljava/lang/Object;>(TT;)V", "(T)", 1},
{"<T:Ljava/lang/Object;>(TT;ILjava/lang/String;)V", "(T, int, java.lang.String)", 3},
{"(I)V", "(int)", 1},
{"(II)V", "(int, int)", 2},
{"([I)V", "(int[])", 1},
{"(Ljava/lang/Object;)V", "(java.lang.Object)", 1},
{"([Ljava/lang/Object;)V", "(java.lang.Object[])", 1},
};
static Stream<Arguments> dataProvider() {
return Stream.of(
arguments("()V", "()", 0),
arguments("<T:Ljava/lang/Object;>(TT;)V", "(T)", 1),
arguments("<T:Ljava/lang/Object;>(TT;ILjava/lang/String;)V", "(T, int, java.lang.String)", 3),
arguments("(I)V", "(int)", 1),
arguments("(II)V", "(int, int)", 2),
arguments("([I)V", "(int[])", 1),
arguments("(Ljava/lang/Object;)V", "(java.lang.Object)", 1),
arguments("([Ljava/lang/Object;)V", "(java.lang.Object[])", 1)
);
}

@Parameter(0)
public String descriptor;

@Parameter(1)
public String expectedSignature;

@Parameter(2)
public int expectedParameterCount;

@Test
public void testGetSignature() {
@DisplayName("SignatureHelper")
@ParameterizedTest(name="signature for \"{0}\" should be \"{1}\"")
@MethodSource("dataProvider")
public void testGetSignature(String descriptor, String expectedSignature, int expectedParameterCount) {
assertEquals(expectedSignature, SignatureHelper.getSignature(descriptor));
}

@Test
public void testGetParameterCount() {
@DisplayName("SignatureHelper")
@ParameterizedTest(name="parameter count for \"{0}\" should be {2}")
@MethodSource("dataProvider")
public void testGetParameterCount(String descriptor, String expectedSignature, int expectedParameterCount) {
assertEquals(expectedParameterCount, SignatureHelper.getParameterCount(descriptor));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,38 +32,34 @@

package com.jeantessier.classreader;

import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.*;
import org.junit.jupiter.params.provider.*;

import static org.junit.Assert.*;
import static org.junit.runners.Parameterized.*;
import java.util.stream.*;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.params.provider.Arguments.*;

@RunWith(Parameterized.class)
public class TestSignatureHelper_convert {
@Parameters(name="SignatureHelper conversion for \"{0}\" should be \"{1}\"")
public static Object[][] data() {
return new Object[][] {
{"I", "int"},
{"[I", "int[]"},
{"package/Class", null},
{"Lpackage/Class;", "package.Class"},
{"[Lpackage/Class;", "package.Class[]"},
{"[[Lpackage/Class;", "package.Class[][]"},
{"TT;", "T"},
{"List", null},
{"Toto", null},
};
static Stream<Arguments> dataProvider() {
return Stream.of(
arguments("I", "int"),
arguments("[I", "int[]"),
arguments("package/Class", null),
arguments("Lpackage/Class;", "package.Class"),
arguments("[Lpackage/Class;", "package.Class[]"),
arguments("[[Lpackage/Class;", "package.Class[][]"),
arguments("TT;", "T"),
arguments("List", null),
arguments("Toto", null)
);
}

@Parameter(0)
public String descriptor;

@Parameter(1)
public String expectedSignature;

@Test
public void testConvert() {
@DisplayName("SignatureHelper")
@ParameterizedTest(name="conversion of \"{0}\" should be \"{1}\"")
@MethodSource("dataProvider")
public void testConvert(String descriptor, String expectedSignature) {
assertEquals(expectedSignature, SignatureHelper.convert(descriptor));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,71 +32,64 @@

package com.jeantessier.classreader;

import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.*;
import org.junit.jupiter.params.provider.*;

import static org.junit.Assert.*;
import static org.junit.runners.Parameterized.*;
import java.util.stream.*;

@RunWith(Parameterized.class)
public class TestTargetType_forTargetType {
@Parameters(name="TargetType from value {0}")
public static Object[][] data() {
return new Object[][] {
{"0x00", 0x00, TargetType.PARAMETER_OF_CLASS},
{"0x01", 0x01, TargetType.PARAMETER_OF_GENERIC_METHOD},
{"0x10", 0x10, TargetType.EXTENDS_OR_IMPLEMENTS},
{"0x11", 0x11, TargetType.BOUND_GENERIC_CLASS},
{"0x12", 0x12, TargetType.BOUND_GENERIC_METHOD},
{"0x13", 0x13, TargetType.FIELD},
{"0x14", 0x14, TargetType.RETURN_TYPE},
{"0x15", 0x15, TargetType.RECEIVER},
{"0x16", 0x16, TargetType.FORMAL_PARAMETER_OF_METHOD},
{"0x17", 0x17, TargetType.THROWS_CLAUSE},
{"0x40", 0x40, TargetType.LOCAL_VARIABLE},
{"0x41", 0x41, TargetType.RESOURCE_VARIABLE},
{"0x42", 0x42, TargetType.EXCEPTION_PARAMETER},
{"0x43", 0x43, TargetType.INSTANCEOF_EXPRESSION},
{"0x44", 0x44, TargetType.NEW_EXPRESSION},
{"0x45", 0x45, TargetType.METHOD_REFERENCE_USING_NEW},
{"0x46", 0x46, TargetType.METHOD_REFERENCE_USING_IDENTIFIER},
{"0x47", 0x47, TargetType.CAST_EXPRESSION},
{"0x48", 0x48, TargetType.ARGUMENT_FOR_GENERIC_CONSTRUCTOR},
{"0x49", 0x49, TargetType.ARGUMENT_FOR_GENERIC_METHOD_INVOCATION},
{"0x4A", 0x4A, TargetType.ARGUMENT_FOR_GENERIC_CONSTRUCTOR_USING_NEW},
{"0x4B", 0x4B, TargetType.ARGUMENT_FOR_GENERIC_METHOD_REFERENCE_USING_IDENTIFIER},
};
}

@Parameter(0)
public String label;

@Parameter(1)
public int targetType;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.params.provider.Arguments.*;

@Parameter(2)
public TargetType expectedResult;

private TargetType sut;

@Before
public void setUp() {
sut = TargetType.forTargetType(targetType);
public class TestTargetType_forTargetType {
static Stream<Arguments> dataProvider() {
return Stream.of(
arguments("0x00", 0x00, TargetType.PARAMETER_OF_CLASS),
arguments("0x01", 0x01, TargetType.PARAMETER_OF_GENERIC_METHOD),
arguments("0x10", 0x10, TargetType.EXTENDS_OR_IMPLEMENTS),
arguments("0x11", 0x11, TargetType.BOUND_GENERIC_CLASS),
arguments("0x12", 0x12, TargetType.BOUND_GENERIC_METHOD),
arguments("0x13", 0x13, TargetType.FIELD),
arguments("0x14", 0x14, TargetType.RETURN_TYPE),
arguments("0x15", 0x15, TargetType.RECEIVER),
arguments("0x16", 0x16, TargetType.FORMAL_PARAMETER_OF_METHOD),
arguments("0x17", 0x17, TargetType.THROWS_CLAUSE),
arguments("0x40", 0x40, TargetType.LOCAL_VARIABLE),
arguments("0x41", 0x41, TargetType.RESOURCE_VARIABLE),
arguments("0x42", 0x42, TargetType.EXCEPTION_PARAMETER),
arguments("0x43", 0x43, TargetType.INSTANCEOF_EXPRESSION),
arguments("0x44", 0x44, TargetType.NEW_EXPRESSION),
arguments("0x45", 0x45, TargetType.METHOD_REFERENCE_USING_NEW),
arguments("0x46", 0x46, TargetType.METHOD_REFERENCE_USING_IDENTIFIER),
arguments("0x47", 0x47, TargetType.CAST_EXPRESSION),
arguments("0x48", 0x48, TargetType.ARGUMENT_FOR_GENERIC_CONSTRUCTOR),
arguments("0x49", 0x49, TargetType.ARGUMENT_FOR_GENERIC_METHOD_INVOCATION),
arguments("0x4A", 0x4A, TargetType.ARGUMENT_FOR_GENERIC_CONSTRUCTOR_USING_NEW),
arguments("0x4B", 0x4B, TargetType.ARGUMENT_FOR_GENERIC_METHOD_REFERENCE_USING_IDENTIFIER)
);
}

@Test
public void testEnumValue() {
assertEquals(label, expectedResult, sut);
@DisplayName("TargetType")
@ParameterizedTest(name="enum value for {0} should be {2}")
@MethodSource("dataProvider")
public void testEnumValue(String variation, int targetType, TargetType expectedResult) {
var sut = TargetType.forTargetType(targetType);
assertEquals(expectedResult, sut);
}

@Test
public void testRawValue() {
assertEquals(label, targetType, sut.getTargetType());
@DisplayName("TargetType")
@ParameterizedTest(name="raw value for {0} should be {1}")
@MethodSource("dataProvider")
public void testRawValue(String variation, int targetType, TargetType expectedResult) {
var sut = TargetType.forTargetType(targetType);
assertEquals(targetType, sut.getTargetType());
}

@Test
public void testHexValue() {
assertEquals(label, sut.getHexTargetType());
@DisplayName("TargetType")
@ParameterizedTest(name="hex value for {0} should be {0}")
@MethodSource("dataProvider")
public void testHexValue(String variation, int targetType, TargetType expectedResult) {
var sut = TargetType.forTargetType(targetType);
assertEquals(variation, sut.getHexTargetType());
}
}
Loading

0 comments on commit 4020ca2

Please sign in to comment.