Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Evgeny Mandrikov
asm
Commits
2616f26d
Commit
2616f26d
authored
Mar 27, 2022
by
Eric Bruneton
Browse files
Replace some repeated tests with parameterized tests. Code smell found by SonarQube.
parent
04f3f8b7
Changes
2
Hide whitespace changes
Inline
Side-by-side
asm-commons/src/test/java/org/objectweb/asm/commons/SerialVersionUidAdderTest.java
View file @
2616f26d
...
...
@@ -36,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import
java.io.IOException
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.params.ParameterizedTest
;
import
org.junit.jupiter.params.provider.CsvSource
;
import
org.junit.jupiter.params.provider.MethodSource
;
import
org.objectweb.asm.ClassReader
;
import
org.objectweb.asm.ClassWriter
;
...
...
@@ -56,48 +57,21 @@ class SerialVersionUidAdderTest extends AsmTest {
assertThrows
(
IllegalStateException
.
class
,
()
->
new
SerialVersionUIDAdder
(
null
)
{});
}
@Test
void
testAllMethods_class
()
throws
IOException
{
ClassReader
classReader
=
new
ClassReader
(
"SerialVersionClass"
);
SerialVersionUIDAdder
svuidAdder
=
new
SerialVersionUIDAdder
(
null
);
classReader
.
accept
(
svuidAdder
,
0
);
long
svuid
=
svuidAdder
.
computeSVUID
();
assertEquals
(
4654798559887898126L
,
svuid
);
}
@Test
void
testAllMethods_anonymousInnerClass
()
throws
IOException
{
ClassReader
classReader
=
new
ClassReader
(
"SerialVersionAnonymousInnerClass$1"
);
SerialVersionUIDAdder
svuidAdder
=
new
SerialVersionUIDAdder
(
null
);
classReader
.
accept
(
svuidAdder
,
0
);
long
svuid
=
svuidAdder
.
computeSVUID
();
assertEquals
(
2591057588230880800L
,
svuid
);
}
@Test
void
testAllMethods_interface
()
throws
IOException
{
ClassReader
classReader
=
new
ClassReader
(
"SerialVersionInterface"
);
SerialVersionUIDAdder
svuidAdder
=
new
SerialVersionUIDAdder
(
null
);
classReader
.
accept
(
svuidAdder
,
0
);
long
svuid
=
svuidAdder
.
computeSVUID
();
assertEquals
(
682190902657822970L
,
svuid
);
}
@Test
void
testAllMethods_emptyInterface
()
throws
IOException
{
ClassReader
classReader
=
new
ClassReader
(
"SerialVersionEmptyInterface"
);
@ParameterizedTest
@CsvSource
({
"SerialVersionClass,4654798559887898126"
,
"SerialVersionAnonymousInnerClass$1,2591057588230880800"
,
"SerialVersionInterface,682190902657822970"
,
"SerialVersionEmptyInterface,-2126445979242430981"
})
void
testAllMethods
(
final
String
className
,
final
long
expectedSvuid
)
throws
IOException
{
ClassReader
classReader
=
new
ClassReader
(
className
);
SerialVersionUIDAdder
svuidAdder
=
new
SerialVersionUIDAdder
(
null
);
classReader
.
accept
(
svuidAdder
,
0
);
long
svuid
=
svuidAdder
.
computeSVUID
();
assertEquals
(
-
2126445979242430981L
,
svuid
);
assertEquals
(
expectedSvuid
,
svuid
);
}
@Test
...
...
asm-util/src/test/java/org/objectweb/asm/util/CheckClassAdapterTest.java
View file @
2616f26d
...
...
@@ -39,6 +39,7 @@ import java.io.StringWriter;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.function.Executable
;
import
org.junit.jupiter.params.ParameterizedTest
;
import
org.junit.jupiter.params.provider.CsvSource
;
import
org.junit.jupiter.params.provider.MethodSource
;
import
org.objectweb.asm.Attribute
;
import
org.objectweb.asm.ClassReader
;
...
...
@@ -281,38 +282,22 @@ class CheckClassAdapterTest extends AsmTest implements Opcodes {
exception
.
getMessage
());
}
@Test
void
testVisitRecordComponent_illegalRecordComponentSignature1
()
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V14
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitRecordComponent
=
()
->
checkClassAdapter
.
visitRecordComponent
(
"i"
,
"I"
,
"L;"
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitRecordComponent
);
assertEquals
(
"L;: identifier expected at index 1"
,
exception
.
getMessage
());
}
@Test
void
testVisitRecordComponent_illegalRecordComponentSignature2
()
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V14
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitRecordComponent
=
()
->
checkClassAdapter
.
visitRecordComponent
(
"i"
,
"I"
,
"LC+"
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitRecordComponent
);
assertEquals
(
"LC+: ';' expected at index 3"
,
exception
.
getMessage
());
}
@Test
void
testVisitRecordComponent_illegalRecordComponentSignature3
()
{
@ParameterizedTest
@CsvSource
({
"L;,identifier expected at index 1"
,
"LC+,';' expected at index 3"
,
"LC;I,error at index 3"
})
void
testVisitRecordComponent_illegalRecordComponentSignatures
(
final
String
invalidSignature
,
final
String
expectedMessage
)
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V14
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitRecordComponent
=
()
->
checkClassAdapter
.
visitRecordComponent
(
"i"
,
"I"
,
"LC;I"
);
()
->
checkClassAdapter
.
visitRecordComponent
(
"i"
,
"I"
,
invalidSignature
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitRecordComponent
);
assertEquals
(
"LC;I: error at index 3"
,
exception
.
getMessage
());
assertEquals
(
invalidSignature
+
": "
+
expectedMessage
,
exception
.
getMessage
());
}
@Test
...
...
@@ -327,37 +312,22 @@ class CheckClassAdapterTest extends AsmTest implements Opcodes {
assertEquals
(
"public, protected and private are mutually exclusive: 3"
,
exception
.
getMessage
());
}
@Test
void
testVisitField_illegalFieldSignature1
()
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V1_1
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitField
=
()
->
checkClassAdapter
.
visitField
(
ACC_PUBLIC
,
"i"
,
"I"
,
"L;"
,
null
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitField
);
assertEquals
(
"L;: identifier expected at index 1"
,
exception
.
getMessage
());
}
@Test
void
testVisitField_illegalFieldSignature2
()
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V1_1
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitField
=
()
->
checkClassAdapter
.
visitField
(
ACC_PUBLIC
,
"i"
,
"I"
,
"LC+"
,
null
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitField
);
assertEquals
(
"LC+: ';' expected at index 3"
,
exception
.
getMessage
());
}
@Test
void
testVisitField_illegalFieldSignature3
()
{
@ParameterizedTest
@CsvSource
({
"L;,identifier expected at index 1"
,
"LC+,';' expected at index 3"
,
"LC;I,error at index 3"
})
void
testVisitField_illegalFieldSignatures
(
final
String
invalidSignature
,
final
String
expectedMessage
)
{
CheckClassAdapter
checkClassAdapter
=
new
CheckClassAdapter
(
null
);
checkClassAdapter
.
visit
(
V1_1
,
ACC_PUBLIC
,
"C"
,
null
,
"java/lang/Object"
,
null
);
Executable
visitField
=
()
->
checkClassAdapter
.
visitField
(
ACC_PUBLIC
,
"i"
,
"I"
,
"LC;I"
,
null
);
Executable
visitField
=
()
->
checkClassAdapter
.
visitField
(
ACC_PUBLIC
,
"i"
,
"I"
,
invalidSignature
,
null
);
Exception
exception
=
assertThrows
(
IllegalArgumentException
.
class
,
visitField
);
assertEquals
(
"LC;I: error at index 3"
,
exception
.
getMessage
());
assertEquals
(
invalidSignature
+
": "
+
expectedMessage
,
exception
.
getMessage
());
}
@Test
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment