Skip to content

Commit 89dc584

Browse files
committed
Streamline overloaded assertion methods for Groovy
Closes #2854
1 parent 5ac0021 commit 89dc584

File tree

5 files changed

+233
-5
lines changed

5 files changed

+233
-5
lines changed

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Current
2+
Fixed: GITHUB-2854: overloaded assertEquals methods do not work from Groovy (Krishnan Mahadevan)
23

34
7.7.0
45
Fixed: GITHUB-2852: [SECURITY] Fix Zip Slip Vulnerability (Jonathan Leitschuh)

testng-asserts/src/main/java/org/testng/Assert.java

Lines changed: 167 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,18 @@ public static void assertEquals(double actual, Double expected, String message)
752752
assertEquals(Double.valueOf(actual), expected, message);
753753
}
754754

755+
/**
756+
* Asserts that two doubles are equal. If they are not, an AssertionError, with the given message,
757+
* is thrown.
758+
*
759+
* @param actual the actual value
760+
* @param expected the expected value
761+
* @param message the assertion error message
762+
*/
763+
public static void assertEquals(Double actual, Double expected, String message) {
764+
assertEquals(actual, (Object) expected, message);
765+
}
766+
755767
/**
756768
* Asserts that two doubles are equal. If they are not, an AssertionError is thrown.
757769
*
@@ -782,8 +794,18 @@ public static void assertEquals(double actual, Double expected) {
782794
assertEquals(Double.valueOf(actual), expected, null);
783795
}
784796

797+
/**
798+
* Asserts that two doubles are equal. If they are not, an AssertionError is thrown.
799+
*
800+
* @param actual the actual value
801+
* @param expected the expected value
802+
*/
803+
public static void assertEquals(Double actual, Double expected) {
804+
assertEquals(actual, expected, null);
805+
}
806+
785807
private static boolean areEqual(float actual, float expected, float delta) {
786-
// handle infinity specially since subtracting to infinite values gives NaN and the
808+
// handle infinity specially since subtracting to infinite values gives NaN and
787809
// the following test fails
788810
if (Float.isInfinite(expected)) {
789811
if (!(expected == actual)) {
@@ -869,6 +891,18 @@ public static void assertEquals(float actual, Float expected, String message) {
869891
assertEquals(Float.valueOf(actual), expected, message);
870892
}
871893

894+
/**
895+
* Asserts that two floats are equal. If they are not, an AssertionError, with the given message,
896+
* is thrown.
897+
*
898+
* @param actual the actual value
899+
* @param expected the expected value
900+
* @param message the assertion error message
901+
*/
902+
public static void assertEquals(Float actual, Float expected, String message) {
903+
assertEquals(actual, (Object) expected, message);
904+
}
905+
872906
/**
873907
* Asserts that two floats are equal. If they are not, an AssertionError is thrown.
874908
*
@@ -899,6 +933,16 @@ public static void assertEquals(float actual, Float expected) {
899933
assertEquals(Float.valueOf(actual), expected, null);
900934
}
901935

936+
/**
937+
* Asserts that two floats are equal. If they are not, an AssertionError is thrown.
938+
*
939+
* @param actual the actual value
940+
* @param expected the expected value
941+
*/
942+
public static void assertEquals(Float actual, Float expected) {
943+
assertEquals(actual, expected, null);
944+
}
945+
902946
/**
903947
* Asserts that two longs are equal. If they are not, an AssertionError, with the given message,
904948
* is thrown.
@@ -931,8 +975,8 @@ public static void assertEquals(Long actual, long expected, String message) {
931975
* @param expected the expected value
932976
* @param message the assertion error message
933977
*/
934-
public static void assertEquals(long actual, Long expected, String message) {
935-
assertEquals(Long.valueOf(actual), expected, message);
978+
public static void assertEquals(Long actual, Long expected, String message) {
979+
assertEquals(actual, (Object) expected, message);
936980
}
937981

938982
/**
@@ -964,6 +1008,16 @@ public static void assertEquals(long actual, Long expected) {
9641008
assertEquals(Long.valueOf(actual), expected, null);
9651009
}
9661010

1011+
/**
1012+
* Asserts that two longs are equal. If they are not, an AssertionError is thrown.
1013+
*
1014+
* @param actual the actual value
1015+
* @param expected the expected value
1016+
*/
1017+
public static void assertEquals(Long actual, Long expected) {
1018+
assertEquals(actual, expected, null);
1019+
}
1020+
9671021
/**
9681022
* Asserts that two booleans are equal. If they are not, an AssertionError, with the given
9691023
* message, is thrown.
@@ -1000,6 +1054,18 @@ public static void assertEquals(boolean actual, Boolean expected, String message
10001054
assertEquals(Boolean.valueOf(actual), expected, message);
10011055
}
10021056

1057+
/**
1058+
* Asserts that two booleans are equal. If they are not, an AssertionError, with the given
1059+
* message, is thrown.
1060+
*
1061+
* @param actual the actual value
1062+
* @param expected the expected value
1063+
* @param message the assertion error message
1064+
*/
1065+
public static void assertEquals(Boolean actual, Boolean expected, String message) {
1066+
assertEquals(actual, (Object) expected, message);
1067+
}
1068+
10031069
/**
10041070
* Asserts that two booleans are equal. If they are not, an AssertionError is thrown.
10051071
*
@@ -1020,6 +1086,16 @@ public static void assertEquals(Boolean actual, boolean expected) {
10201086
assertEquals(actual, Boolean.valueOf(expected), null);
10211087
}
10221088

1089+
/**
1090+
* Asserts that two booleans are equal. If they are not, an AssertionError is thrown.
1091+
*
1092+
* @param actual the actual value
1093+
* @param expected the expected value
1094+
*/
1095+
public static void assertEquals(Boolean actual, Boolean expected) {
1096+
assertEquals(actual, expected, null);
1097+
}
1098+
10231099
/**
10241100
* Asserts that two booleans are equal. If they are not, an AssertionError is thrown.
10251101
*
@@ -1066,6 +1142,18 @@ public static void assertEquals(byte actual, Byte expected, String message) {
10661142
assertEquals(Byte.valueOf(actual), expected, message);
10671143
}
10681144

1145+
/**
1146+
* Asserts that two bytes are equal. If they are not, an AssertionError, with the given message,
1147+
* is thrown.
1148+
*
1149+
* @param actual the actual value
1150+
* @param expected the expected value
1151+
* @param message the assertion error message
1152+
*/
1153+
public static void assertEquals(Byte actual, Byte expected, String message) {
1154+
assertEquals(actual, (Object) expected, message);
1155+
}
1156+
10691157
/**
10701158
* Asserts that two bytes are equal. If they are not, an AssertionError is thrown.
10711159
*
@@ -1086,6 +1174,16 @@ public static void assertEquals(Byte actual, byte expected) {
10861174
assertEquals(actual, Byte.valueOf(expected), null);
10871175
}
10881176

1177+
/**
1178+
* Asserts that two bytes are equal. If they are not, an AssertionError is thrown.
1179+
*
1180+
* @param actual the actual value
1181+
* @param expected the expected value
1182+
*/
1183+
public static void assertEquals(Byte actual, Byte expected) {
1184+
assertEquals(actual, expected, null);
1185+
}
1186+
10891187
/**
10901188
* Asserts that two bytes are equal. If they are not, an AssertionError is thrown.
10911189
*
@@ -1132,6 +1230,18 @@ public static void assertEquals(char actual, Character expected, String message)
11321230
assertEquals(Character.valueOf(actual), expected, message);
11331231
}
11341232

1233+
/**
1234+
* Asserts that two chars are equal. If they are not, an AssertionError, with the given message,
1235+
* is thrown.
1236+
*
1237+
* @param actual the actual value
1238+
* @param expected the expected value
1239+
* @param message the assertion error message
1240+
*/
1241+
public static void assertEquals(Character actual, Character expected, String message) {
1242+
assertEquals(actual, (Object) expected, message);
1243+
}
1244+
11351245
/**
11361246
* Asserts that two chars are equal. If they are not, an AssertionError is thrown.
11371247
*
@@ -1162,6 +1272,16 @@ public static void assertEquals(char actual, Character expected) {
11621272
assertEquals(Character.valueOf(actual), expected, null);
11631273
}
11641274

1275+
/**
1276+
* Asserts that two chars are equal. If they are not, an AssertionError is thrown.
1277+
*
1278+
* @param actual the actual value
1279+
* @param expected the expected value
1280+
*/
1281+
public static void assertEquals(Character actual, Character expected) {
1282+
assertEquals(actual, expected, null);
1283+
}
1284+
11651285
/**
11661286
* Asserts that two shorts are equal. If they are not, an AssertionError, with the given message,
11671287
* is thrown.
@@ -1198,6 +1318,18 @@ public static void assertEquals(short actual, Short expected, String message) {
11981318
assertEquals(Short.valueOf(actual), expected, message);
11991319
}
12001320

1321+
/**
1322+
* Asserts that two shorts are equal. If they are not, an AssertionError, with the given message,
1323+
* is thrown.
1324+
*
1325+
* @param actual the actual value
1326+
* @param expected the expected value
1327+
* @param message the assertion error message
1328+
*/
1329+
public static void assertEquals(Short actual, Short expected, String message) {
1330+
assertEquals(actual, (Object) expected, message);
1331+
}
1332+
12011333
/**
12021334
* Asserts that two shorts are equal. If they are not, an AssertionError is thrown.
12031335
*
@@ -1228,6 +1360,16 @@ public static void assertEquals(short actual, Short expected) {
12281360
assertEquals(Short.valueOf(actual), expected, null);
12291361
}
12301362

1363+
/**
1364+
* Asserts that two shorts are equal. If they are not, an AssertionError is thrown.
1365+
*
1366+
* @param actual the actual value
1367+
* @param expected the expected value
1368+
*/
1369+
public static void assertEquals(Short actual, Short expected) {
1370+
assertEquals(actual, expected, null);
1371+
}
1372+
12311373
/**
12321374
* Asserts that two ints are equal. If they are not, an AssertionError, with the given message, is
12331375
* thrown.
@@ -1264,6 +1406,18 @@ public static void assertEquals(int actual, Integer expected, String message) {
12641406
assertEquals(Integer.valueOf(actual), expected, message);
12651407
}
12661408

1409+
/**
1410+
* Asserts that two ints are equal. If they are not, an AssertionError, with the given message, is
1411+
* thrown.
1412+
*
1413+
* @param actual the actual value
1414+
* @param expected the expected value
1415+
* @param message the assertion error message
1416+
*/
1417+
public static void assertEquals(Integer actual, Integer expected, String message) {
1418+
assertEquals(actual, (Object) expected, message);
1419+
}
1420+
12671421
/**
12681422
* Asserts that two ints are equal. If they are not, an AssertionError is thrown.
12691423
*
@@ -1294,6 +1448,16 @@ public static void assertEquals(int actual, Integer expected) {
12941448
assertEquals(Integer.valueOf(actual), expected, null);
12951449
}
12961450

1451+
/**
1452+
* Asserts that two ints are equal. If they are not, an AssertionError is thrown.
1453+
*
1454+
* @param actual the actual value
1455+
* @param expected the expected value
1456+
*/
1457+
public static void assertEquals(Integer actual, Integer expected) {
1458+
assertEquals(actual, expected, null);
1459+
}
1460+
12971461
/**
12981462
* Asserts that an object isn't null. If it is, an AssertionError is thrown.
12991463
*

testng-asserts/src/test/java/test/asserttests/AssertTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void assertEqualsBoxedUnboxedLong() {
5151
assertEquals(a, b);
5252
assertEquals(a, b, "");
5353
assertEquals(b, a);
54-
assertEquals(b, a, "");
54+
assertEquals(Long.valueOf(b), a, "");
5555
}
5656

5757
@Test(description = "GITHUB-2652")

testng-core/src/test/groovy/test/groovy/GroovyTest.groovy

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import org.testng.ITestContext
66
import org.testng.ITestNGListener
77
import org.testng.TestListenerAdapter
88
import org.testng.annotations.Test
9-
import org.testng.reporters.JUnitXMLReporter
109
import test.SimpleBaseTest
10+
import test.groovy.issue2854.AssertionsTestSample
1111

1212
import static org.assertj.core.api.Assertions.assertThat
1313

@@ -53,4 +53,10 @@ class GroovyTest extends SimpleBaseTest {
5353
assertThat testMethodNames containsExactly "test1", "test2"
5454
}
5555

56+
@Test(description = "GITHUB-2854")
57+
void ensureAssertionsWork() {
58+
def testng = create AssertionsTestSample
59+
testng.run()
60+
assertThat testng.status isEqualTo(0)
61+
}
5662
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package test.groovy.issue2854
2+
3+
import org.testng.annotations.Test
4+
5+
import static org.testng.Assert.assertEquals
6+
7+
class AssertionsTestSample {
8+
9+
@Test
10+
void testAssertEqualsWorksWithBooleans() {
11+
assertEquals(true, true)
12+
assertEquals(true, true, "Sample Message")
13+
}
14+
15+
@Test
16+
void testAssertEqualsWorksWithBytes() {
17+
assertEquals(Byte.valueOf((byte) 10), Byte.valueOf((byte) 10))
18+
assertEquals(Byte.valueOf((byte) 10), Byte.valueOf((byte) 10), "Sample Message")
19+
}
20+
21+
@Test
22+
void testAssertEqualsWorksWithChars() {
23+
assertEquals(Character.valueOf((char) 10), Character.valueOf((char) 10))
24+
assertEquals(Character.valueOf((char) 10), Character.valueOf((char) 10), "Sample Message")
25+
}
26+
27+
@Test
28+
void testAssertEqualsWorksWithShorts() {
29+
assertEquals(Short.valueOf((short) 10), Short.valueOf((short) 10))
30+
assertEquals(Short.valueOf((short) 10), Short.valueOf((short) 10), "Sample Message")
31+
}
32+
33+
@Test
34+
void testAssertEqualsWorksWithInts() {
35+
assertEquals(10, 10)
36+
assertEquals(10, 10, "Sample Message")
37+
}
38+
39+
@Test
40+
void testAssertEqualsWorksWithLongs() {
41+
assertEquals(Long.valueOf((long) 10), Long.valueOf((long) 10))
42+
assertEquals(Long.valueOf((long) 10), Long.valueOf((long) 10), "Sample Message")
43+
}
44+
45+
@Test
46+
void testAssertEqualsWorksWithFloats() {
47+
assertEquals(Float.valueOf((float) 10), Float.valueOf((float) 10))
48+
assertEquals(Float.valueOf((float) 10), Float.valueOf((float) 10), "Sample Message")
49+
}
50+
51+
@Test
52+
void testAssertEqualsWorksWithDoubles() {
53+
assertEquals(Double.valueOf((double) 10), Double.valueOf((double) 10))
54+
assertEquals(Double.valueOf((double) 10), Double.valueOf((double) 10), "Sample Message")
55+
}
56+
57+
}

0 commit comments

Comments
 (0)