Closed
Description
Description
getArrayLength cannot get array length treating array as a non-array object.
To Reproduce
- Enable parametrized test generation for samples,
- Run ClassWithEnumTest.
Actual behavior
Generated not parametrized test looks like this:
public class ClassWithEnumGeneratedTest {
///region Test suites for executable org.utbot.examples.enums.ClassWithEnum$StatusEnum.values
///region
@Test
public void testValues1() throws ClassNotFoundException {
java.lang.Object[] actual = ClassWithEnum.StatusEnum.values();
java.lang.Object[] expected = createArray("org.utbot.examples.enums.ClassWithEnum$StatusEnum", 2);
ClassWithEnum.StatusEnum statusEnum = ClassWithEnum.StatusEnum.READY;
expected[0] = ((Object) statusEnum);
ClassWithEnum.StatusEnum statusEnum1 = ClassWithEnum.StatusEnum.ERROR;
expected[1] = ((Object) statusEnum1);
int expectedSize = expected.length;
assertEquals(expectedSize, actual.length);
assertTrue(deepEquals(expected, actual));
}
///endregion
///endregion
///region Data providers and utils methods
<...>
///endregion
}
Generated parametrized test looks like this:
public class ClassWithEnumGeneratedTest {
///region Test suites for executable org.utbot.examples.enums.ClassWithEnum$StatusEnum.values
///region Parameterized test for method values()
@ParameterizedTest
@MethodSource("provideDataForValues")
public void parameterizedTestsForValues(Object expectedResult) {
java.lang.Object[] actual = ClassWithEnum.StatusEnum.values();
if (expectedResult == null) {
assertNull(actual);
} else {
int expectedResultSize = getArrayLength(expectedResult);
assertEquals(expectedResultSize, actual.length);
assertTrue(deepEquals(expectedResult, actual));
}
}
///endregion
///endregion
///region Data providers and utils methods
public static java.util.ArrayList<org.junit.jupiter.params.provider.Arguments> provideDataForValues() throws ClassNotFoundException {
java.util.ArrayList<org.junit.jupiter.params.provider.Arguments> argList = new java.util.ArrayList<org.junit.jupiter.params.provider.Arguments>();
{
java.lang.Object[] statusEnumArray = createArray("org.utbot.examples.enums.ClassWithEnum$StatusEnum", 2);
ClassWithEnum.StatusEnum statusEnum = ClassWithEnum.StatusEnum.READY;
statusEnumArray[0] = ((Object) statusEnum);
ClassWithEnum.StatusEnum statusEnum1 = ClassWithEnum.StatusEnum.ERROR;
statusEnumArray[1] = ((Object) statusEnum1);
argList.add(org.junit.jupiter.params.provider.Arguments.arguments(statusEnumArray));
}
return argList;
}
private static int getArrayLength(Object arr) {
return java.lang.reflect.Array.getLength(arr);
}
<...>
///endregion
}
Visual proofs (screenshots, logs, images)
Metadata
Metadata
Assignees
Type
Projects
Status
Done