You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/01/25 03:10:23 UTC
(commons-lang) branch master updated: Address minor redundancies after code inspection (#1148)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push:
new 84b475ae4 Address minor redundancies after code inspection (#1148)
84b475ae4 is described below
commit 84b475ae4983ced77e868c0467a52f217f8bcc8e
Author: Capt. Cutlass <51...@users.noreply.github.com>
AuthorDate: Wed Jan 24 22:10:17 2024 -0500
Address minor redundancies after code inspection (#1148)
* refactor: remove redundant string conversion
* refactor: remove unused assignments (minor)
* refactor: remove unused assignments (major)
Keeping this "bulky" cleanup as a separate commit for review convenience (can be squashed afterward).
* refactor: address feedback
* refactor: split testIsAssignable by groups
* refactor: remove unnecessary boxing
* refactor: extract null-locale case into separate test
* refactor: use named fields for generic types
* refactor: more specific checked exception in method declaration
* refactor: remove pseudo-comment variables
* refactor: revert remove unnecessary boxing
---
.../java/org/apache/commons/lang3/StringUtils.java | 4 +-
.../lang3/concurrent/ConstantInitializer.java | 3 +-
.../apache/commons/lang3/reflect/TypeUtils.java | 2 +-
.../commons/lang3/CharSequenceUtilsTest.java | 2 +-
.../commons/lang3/RandomStringUtilsTest.java | 6 +-
.../java/org/apache/commons/lang3/RangeTest.java | 12 +-
.../commons/lang3/StringEscapeUtilsTest.java | 2 +-
.../org/apache/commons/lang3/StringUtilsTest.java | 8 +-
.../lang3/builder/JsonToStringStyleTest.java | 4 +-
.../lang3/exception/ExceptionUtilsTest.java | 2 -
.../commons/lang3/function/MethodFixtures.java | 10 -
.../apache/commons/lang3/math/FractionTest.java | 3 +-
.../apache/commons/lang3/math/NumberUtilsTest.java | 29 +-
.../commons/lang3/reflect/TypeUtilsTest.java | 668 ++++++++-------------
.../lang3/reflect/testbed/GenericTypeHolder.java | 15 +
.../lang3/text/ExtendedMessageFormatTest.java | 66 +-
.../lang3/text/StrBuilderAppendInsertTest.java | 4 +-
.../apache/commons/lang3/time/DateUtilsTest.java | 2 +-
.../commons/lang3/time/FastDateParserSDFTest.java | 6 +-
.../time/FastDateParser_TimeZoneStrategyTest.java | 2 +-
.../commons/lang3/util/FluentBitSetTest.java | 2 +-
21 files changed, 363 insertions(+), 489 deletions(-)
diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java b/src/main/java/org/apache/commons/lang3/StringUtils.java
index 19f13c597..bb52b383f 100644
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@ -438,7 +438,7 @@ public class StringUtils {
}
}
}
- return str + suffix.toString();
+ return str + suffix;
}
/**
@@ -5681,7 +5681,7 @@ public class StringUtils {
}
}
}
- return prefix.toString() + str;
+ return prefix + str;
}
/**
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
index cfa407b77..3d2bdaee2 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java
@@ -133,7 +133,6 @@ public class ConstantInitializer<T> implements ConcurrentInitializer<T> {
*/
@Override
public String toString() {
- return String.format(FMT_TO_STRING, Integer.valueOf(System.identityHashCode(this)),
- String.valueOf(getObject()));
+ return String.format(FMT_TO_STRING, Integer.valueOf(System.identityHashCode(this)), getObject());
}
}
diff --git a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
index 264c7dea5..610418c4f 100644
--- a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
+++ b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
@@ -1591,7 +1591,7 @@ public class TypeUtils {
if (useOwner instanceof Class<?>) {
builder.append(((Class<?>) useOwner).getName());
} else {
- builder.append(useOwner.toString());
+ builder.append(useOwner);
}
builder.append('.').append(raw.getSimpleName());
}
diff --git a/src/test/java/org/apache/commons/lang3/CharSequenceUtilsTest.java b/src/test/java/org/apache/commons/lang3/CharSequenceUtilsTest.java
index 47d76466a..e9022a465 100644
--- a/src/test/java/org/apache/commons/lang3/CharSequenceUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/CharSequenceUtilsTest.java
@@ -219,7 +219,7 @@ public class CharSequenceUtilsTest extends AbstractLangTest {
if (random.nextDouble() < 0.5) {
original.append(random.nextInt() % 10);
} else {
- original = new StringBuilder().append(String.valueOf(random.nextInt() % 100)).append(original);
+ original = new StringBuilder().append(random.nextInt() % 100).append(original);
}
testNewLastIndexOfSingle(original, seg);
}
diff --git a/src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java b/src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java
index 0ff72e0e0..bc6a33287 100644
--- a/src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java
@@ -51,9 +51,8 @@ public class RandomStringUtilsTest extends AbstractLangTest {
*/
private double chiSquare(final int[] expected, final int[] observed) {
double sumSq = 0.0d;
- double dev = 0.0d;
for (int i = 0; i < observed.length; i++) {
- dev = observed[i] - expected[i];
+ double dev = observed[i] - expected[i];
sumSq += dev * dev / expected[i];
}
return sumSq;
@@ -511,11 +510,10 @@ public class RandomStringUtilsTest extends AbstractLangTest {
public void testRandomStringUtilsHomog() {
final String set = "abc";
final char[] chars = set.toCharArray();
- String gen = "";
final int[] counts = {0, 0, 0};
final int[] expected = {200, 200, 200};
for (int i = 0; i < 100; i++) {
- gen = RandomStringUtils.random(6, chars);
+ String gen = RandomStringUtils.random(6, chars);
for (int j = 0; j < 6; j++) {
switch (gen.charAt(j)) {
case 'a': {
diff --git a/src/test/java/org/apache/commons/lang3/RangeTest.java b/src/test/java/org/apache/commons/lang3/RangeTest.java
index 641f0f165..619688525 100644
--- a/src/test/java/org/apache/commons/lang3/RangeTest.java
+++ b/src/test/java/org/apache/commons/lang3/RangeTest.java
@@ -117,20 +117,16 @@ public class RangeTest extends AbstractLangTest {
final DerivedComparableA derivedComparableA = new DerivedComparableA();
final DerivedComparableB derivedComparableB = new DerivedComparableB();
- Range<AbstractComparable> mixed = Range.between(derivedComparableA, derivedComparableB);
- mixed = Range.between(derivedComparableA, derivedComparableB, null);
+ Range<AbstractComparable> mixed = Range.between(derivedComparableA, derivedComparableB, null);
assertTrue(mixed.contains(derivedComparableA));
- Range<AbstractComparable> same = Range.between(derivedComparableA, derivedComparableA);
- same = Range.between(derivedComparableA, derivedComparableA, null);
+ Range<AbstractComparable> same = Range.between(derivedComparableA, derivedComparableA, null);
assertTrue(same.contains(derivedComparableA));
- Range<DerivedComparableA> rangeA = Range.between(derivedComparableA, derivedComparableA);
- rangeA = Range.between(derivedComparableA, derivedComparableA, null);
+ Range<DerivedComparableA> rangeA = Range.between(derivedComparableA, derivedComparableA, null);
assertTrue(rangeA.contains(derivedComparableA));
- Range<DerivedComparableB> rangeB = Range.is(derivedComparableB);
- rangeB = Range.is(derivedComparableB, null);
+ Range<DerivedComparableB> rangeB = Range.is(derivedComparableB, null);
assertTrue(rangeB.contains(derivedComparableB));
}
diff --git a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
index 8fe649833..faa6544cf 100644
--- a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
@@ -487,7 +487,7 @@ public class StringEscapeUtilsTest extends AbstractLangTest {
for (char i = Character.MIN_VALUE; i < Character.MAX_VALUE; i++) {
final Character c1 = Character.valueOf(i);
final Character c2 = Character.valueOf((char) (i+1));
- final String expected = c1.toString() + c2.toString();
+ final String expected = c1.toString() + c2;
final String escapedC1 = "&#x" + Integer.toHexString((c1.charValue())) + ";";
final String escapedC2 = "&#x" + Integer.toHexString((c2.charValue())) + ";";
assertEquals(expected, StringEscapeUtils.unescapeHtml4(escapedC1 + escapedC2), "hex number unescape index " + (int) i);
diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
index 9094633f8..96004a4f3 100644
--- a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
@@ -73,16 +73,16 @@ public class StringUtilsTest extends AbstractLangTest {
final StringBuilder ntr = new StringBuilder();
for (int i = 0; i < Character.MAX_VALUE; i++) {
if (Character.isWhitespace((char) i)) {
- ws.append(String.valueOf((char) i));
+ ws.append((char) i);
if (i > 32) {
- ntr.append(String.valueOf((char) i));
+ ntr.append((char) i);
}
} else if (i < 40) {
- nws.append(String.valueOf((char) i));
+ nws.append((char) i);
}
}
for (int i = 0; i <= 32; i++) {
- tr.append(String.valueOf((char) i));
+ tr.append((char) i);
}
WHITESPACE = ws.toString();
NON_WHITESPACE = nws.toString();
diff --git a/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java b/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
index ac0b516c7..5370960bc 100644
--- a/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
+++ b/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
@@ -333,9 +333,9 @@ public class JsonToStringStyleTest extends AbstractLangTest {
assertThrows(UnsupportedOperationException.class, () -> new ToStringBuilder(base).append(now).toString());
- assertEquals("{\"now\":\"" + now.toString() +"\"}", new ToStringBuilder(base).append("now", now)
+ assertEquals("{\"now\":\"" + now +"\"}", new ToStringBuilder(base).append("now", now)
.toString());
- assertEquals("{\"now\":\"" + now.toString() +"\",\"after\":\"" + afterNow.toString() + "\"}", new ToStringBuilder(base).append("now", now).append("after", afterNow)
+ assertEquals("{\"now\":\"" + now +"\",\"after\":\"" + afterNow + "\"}", new ToStringBuilder(base).append("now", now).append("after", afterNow)
.toString());
}
diff --git a/src/test/java/org/apache/commons/lang3/exception/ExceptionUtilsTest.java b/src/test/java/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
index e3d39b48f..6ce2fdd80 100644
--- a/src/test/java/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/exception/ExceptionUtilsTest.java
@@ -695,7 +695,6 @@ public class ExceptionUtilsTest extends AbstractLangTest {
ExceptionUtils.printRootCauseStackTrace(null, new PrintStream(out));
assertEquals(0, out.toString().length());
- out = new ByteArrayOutputStream(1024);
assertThrows(
NullPointerException.class,
() -> ExceptionUtils.printRootCauseStackTrace(withCause, (PrintStream) null));
@@ -719,7 +718,6 @@ public class ExceptionUtilsTest extends AbstractLangTest {
ExceptionUtils.printRootCauseStackTrace(null, new PrintWriter(writer));
assertEquals(0, writer.getBuffer().length());
- writer = new StringWriter(1024);
assertThrows(
NullPointerException.class,
() -> ExceptionUtils.printRootCauseStackTrace(withCause, (PrintWriter) null));
diff --git a/src/test/java/org/apache/commons/lang3/function/MethodFixtures.java b/src/test/java/org/apache/commons/lang3/function/MethodFixtures.java
index 527154dc0..2a35533c2 100644
--- a/src/test/java/org/apache/commons/lang3/function/MethodFixtures.java
+++ b/src/test/java/org/apache/commons/lang3/function/MethodFixtures.java
@@ -23,8 +23,6 @@ import java.lang.reflect.Method;
import org.apache.commons.lang3.AbstractLangTest;
import org.apache.commons.lang3.exception.CustomCheckedException;
import org.apache.commons.lang3.exception.CustomUncheckedException;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
class MethodFixtures extends AbstractLangTest {
@@ -120,14 +118,6 @@ class MethodFixtures extends AbstractLangTest {
private String[] valueArray;
- @BeforeEach
- @AfterEach
- public void clear() {
- value1 = null;
- value1 = null;
- valueArray = null;
- }
-
public String geStringtVarStringArgs(final String... strings) {
return "XYZ";
}
diff --git a/src/test/java/org/apache/commons/lang3/math/FractionTest.java b/src/test/java/org/apache/commons/lang3/math/FractionTest.java
index feb3f458b..684a9e55c 100644
--- a/src/test/java/org/apache/commons/lang3/math/FractionTest.java
+++ b/src/test/java/org/apache/commons/lang3/math/FractionTest.java
@@ -357,7 +357,7 @@ public class FractionTest extends AbstractLangTest {
assertEquals(1, f.getDenominator());
// normal
- Fraction f2 = null;
+ Fraction f2;
for (int i = 1; i <= 100; i++) { // denominator
for (int j = 1; j <= i; j++) { // numerator
f = Fraction.getFraction((double) j / (double) i);
@@ -1036,7 +1036,6 @@ public class FractionTest extends AbstractLangTest {
assertThrows(
ArithmeticException.class,
() -> Fraction.getFraction(1, Integer.MAX_VALUE).subtract(Fraction.getFraction(1, Integer.MAX_VALUE - 1)));
- f = f1.subtract(f2);
// denominator should not be a multiple of 2 or 3 to trigger overflow
assertThrows(
diff --git a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
index 2db7878f9..8677afe36 100644
--- a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
@@ -646,7 +646,7 @@ public class NumberUtilsTest extends AbstractLangTest {
// Requested type is parsed as zero but the value is not zero
final Double nonZero1 = Double.valueOf(((double) Float.MIN_VALUE) / 2);
assertEquals(nonZero1, NumberUtils.createNumber(nonZero1.toString()));
- assertEquals(nonZero1, NumberUtils.createNumber(nonZero1.toString() + "F"));
+ assertEquals(nonZero1, NumberUtils.createNumber(nonZero1 + "F"));
// Smallest double is 4.9e-324.
// Test a number with zero before and/or after the decimal place to hit edge cases.
final BigDecimal nonZero2 = new BigDecimal("4.9e-325");
@@ -1415,12 +1415,9 @@ public class NumberUtilsTest extends AbstractLangTest {
*/
@Test
public void testStringCreateNumberEnsureNoPrecisionLoss() {
- final String shouldBeFloat = "1.23";
- final String shouldBeDouble = "3.40282354e+38";
- final String shouldBeBigDecimal = "1.797693134862315759e+308";
- assertTrue(NumberUtils.createNumber(shouldBeFloat) instanceof Float);
- assertTrue(NumberUtils.createNumber(shouldBeDouble) instanceof Double);
- assertTrue(NumberUtils.createNumber(shouldBeBigDecimal) instanceof BigDecimal);
+ assertTrue(NumberUtils.createNumber("1.23") instanceof Float);
+ assertTrue(NumberUtils.createNumber("3.40282354e+38") instanceof Double);
+ assertTrue(NumberUtils.createNumber("1.797693134862315759e+308") instanceof BigDecimal);
// LANG-1060
assertTrue(NumberUtils.createNumber("001.12") instanceof Float);
assertTrue(NumberUtils.createNumber("-001.12") instanceof Float);
@@ -1432,15 +1429,15 @@ public class NumberUtilsTest extends AbstractLangTest {
assertTrue(NumberUtils.createNumber("-001.797693134862315759e+308") instanceof BigDecimal);
assertTrue(NumberUtils.createNumber("+001.797693134862315759e+308") instanceof BigDecimal);
//LANG-1613
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_NORMAL)) instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_NORMAL) + "D") instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_NORMAL) + "F") instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_VALUE)) instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_VALUE) + "D") instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MIN_VALUE) + "F") instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MAX_VALUE)) instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MAX_VALUE) + "D") instanceof Double);
- assertTrue(NumberUtils.createNumber(Double.toString(Double.MAX_VALUE) + "F") instanceof Double);
+ assertTrue(NumberUtils.createNumber("2.2250738585072014E-308") instanceof Double);
+ assertTrue(NumberUtils.createNumber("2.2250738585072014E-308D") instanceof Double);
+ assertTrue(NumberUtils.createNumber("2.2250738585072014E-308F") instanceof Double);
+ assertTrue(NumberUtils.createNumber("4.9E-324") instanceof Double);
+ assertTrue(NumberUtils.createNumber("4.9E-324D") instanceof Double);
+ assertTrue(NumberUtils.createNumber("4.9E-324F") instanceof Double);
+ assertTrue(NumberUtils.createNumber("1.7976931348623157E308") instanceof Double);
+ assertTrue(NumberUtils.createNumber("1.7976931348623157E308D") instanceof Double);
+ assertTrue(NumberUtils.createNumber("1.7976931348623157E308F") instanceof Double);
assertTrue(NumberUtils.createNumber("4.9e-324D") instanceof Double);
assertTrue(NumberUtils.createNumber("4.9e-324F") instanceof Double);
}
diff --git a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
index c5a546cb0..b01ee870f 100644
--- a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
@@ -229,33 +229,8 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
public Iterable<? extends Map<Integer, ? extends Collection<?>>> iterable;
- public void delegateBooleanAssertion(final Type[] types, final int i2, final int i1, final boolean expected) {
- final Type type1 = types[i1];
- final Type type2 = types[i2];
- final boolean isAssignable = TypeUtils.isAssignable(type2, type1);
-
- if (expected) {
- assertTrue(isAssignable,
- "[" + i1 + ", " + i2 + "]: From "
- + String.valueOf(type2) + " to "
- + String.valueOf(type1));
- } else {
- assertFalse(isAssignable,
- "[" + i1 + ", " + i2 + "]: From "
- + String.valueOf(type2) + " to "
- + String.valueOf(type1));
- }
- }
-
- public void dummyMethod(final List list0, final List<Object> list1, final List<?> list2,
- final List<? super Object> list3, final List<String> list4, final List<? extends String> list5,
- final List<? super String> list6, final List[] list7, final List<Object>[] list8, final List<?>[] list9,
- final List<? super Object>[] list10, final List<String>[] list11, final List<? extends String>[] list12,
- final List<? super String>[] list13) {
- }
-
@Test
- public void test_LANG_1114() throws Exception {
+ public void test_LANG_1114() throws NoSuchFieldException {
final Type nonWildcardType = getClass().getDeclaredField("wildcardComparable").getGenericType();
final Type wildcardType = ((ParameterizedType) nonWildcardType).getActualTypeArguments()[0];
@@ -264,7 +239,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void test_LANG_1190() throws Exception {
+ public void test_LANG_1190() throws NoSuchMethodException {
final Type fromType = ClassWithSuperClassWithGenericType.class.getDeclaredMethod("methodWithGenericReturnType").getGenericReturnType();
final Type failingToType = TypeUtils.wildcardType().withLowerBounds(ClassWithSuperClassWithGenericType.class).build();
@@ -272,7 +247,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void test_LANG_1348() throws Exception {
+ public void test_LANG_1348() throws NoSuchMethodException {
final Method method = Enum.class.getMethod("valueOf", Class.class, String.class);
assertEquals("T extends java.lang.Enum<T>", TypeUtils.toString(method.getGenericReturnType()));
}
@@ -336,7 +311,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testContainsTypeVariables() throws Exception {
+ public void testContainsTypeVariables() throws NoSuchMethodException {
assertFalse(TypeUtils.containsTypeVariables(Test1.class.getMethod("m0").getGenericReturnType()));
assertFalse(TypeUtils.containsTypeVariables(Test1.class.getMethod("m1").getGenericReturnType()));
assertTrue(TypeUtils.containsTypeVariables(Test1.class.getMethod("m2").getGenericReturnType()));
@@ -358,8 +333,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testDetermineTypeVariableAssignments() throws SecurityException,
- NoSuchFieldException {
+ public void testDetermineTypeVariableAssignments() throws NoSuchFieldException {
final ParameterizedType iterableType = (ParameterizedType) getClass().getField("iterable")
.getGenericType();
final Map<TypeVariable<?>, Type> typeVarAssigns = TypeUtils.determineTypeArguments(TreeSet.class,
@@ -376,7 +350,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testGenericArrayType() throws Exception {
+ public void testGenericArrayType() throws NoSuchFieldException {
final Type expected = getClass().getField("intWildcardComparable").getGenericType();
final GenericArrayType actual =
TypeUtils.genericArrayType(TypeUtils.parameterize(Comparable.class, TypeUtils.wildcardType()
@@ -386,27 +360,38 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testGetArrayComponentType() throws Exception {
- final Method method = getClass().getMethod("dummyMethod", List.class, List.class, List.class,
- List.class, List.class, List.class, List.class, List[].class, List[].class,
- List[].class, List[].class, List[].class, List[].class, List[].class);
-
- final Type[] types = method.getGenericParameterTypes();
-
- assertNull(TypeUtils.getArrayComponentType(types[0]));
- assertNull(TypeUtils.getArrayComponentType(types[1]));
- assertNull(TypeUtils.getArrayComponentType(types[2]));
- assertNull(TypeUtils.getArrayComponentType(types[3]));
- assertNull(TypeUtils.getArrayComponentType(types[4]));
- assertNull(TypeUtils.getArrayComponentType(types[5]));
- assertNull(TypeUtils.getArrayComponentType(types[6]));
- assertEquals(types[0], TypeUtils.getArrayComponentType(types[7]));
- assertEquals(types[1], TypeUtils.getArrayComponentType(types[8]));
- assertEquals(types[2], TypeUtils.getArrayComponentType(types[9]));
- assertEquals(types[3], TypeUtils.getArrayComponentType(types[10]));
- assertEquals(types[4], TypeUtils.getArrayComponentType(types[11]));
- assertEquals(types[5], TypeUtils.getArrayComponentType(types[12]));
- assertEquals(types[6], TypeUtils.getArrayComponentType(types[13]));
+ public void testGetArrayComponentType() throws NoSuchFieldException {
+ final Type rawListType = GenericTypeHolder.class.getDeclaredField("rawList").getGenericType();
+ final Type objectListType = GenericTypeHolder.class.getDeclaredField("objectList").getGenericType();
+ final Type unboundListType = GenericTypeHolder.class.getDeclaredField("unboundList").getGenericType();
+ final Type superObjectListType = GenericTypeHolder.class.getDeclaredField("superObjectList").getGenericType();
+ final Type stringListType = GenericTypeHolder.class.getDeclaredField("stringList").getGenericType();
+ final Type subStringListType = GenericTypeHolder.class.getDeclaredField("subStringList").getGenericType();
+ final Type superStringListType = GenericTypeHolder.class.getDeclaredField("superStringList").getGenericType();
+
+ assertNull(TypeUtils.getArrayComponentType(rawListType));
+ assertNull(TypeUtils.getArrayComponentType(objectListType));
+ assertNull(TypeUtils.getArrayComponentType(unboundListType));
+ assertNull(TypeUtils.getArrayComponentType(superObjectListType));
+ assertNull(TypeUtils.getArrayComponentType(stringListType));
+ assertNull(TypeUtils.getArrayComponentType(subStringListType));
+ assertNull(TypeUtils.getArrayComponentType(superStringListType));
+
+ final Type rawListTypeArray = GenericTypeHolder.class.getDeclaredField("rawListArray").getGenericType();
+ final Type objectListTypeArray = GenericTypeHolder.class.getDeclaredField("objectListArray").getGenericType();
+ final Type unboundListTypeArray = GenericTypeHolder.class.getDeclaredField("unboundListArray").getGenericType();
+ final Type superObjectListTypeArray = GenericTypeHolder.class.getDeclaredField("superObjectListArray").getGenericType();
+ final Type stringListTypeArray = GenericTypeHolder.class.getDeclaredField("stringListArray").getGenericType();
+ final Type subStringListTypeArray = GenericTypeHolder.class.getDeclaredField("subStringListArray").getGenericType();
+ final Type superStringListTypeArray = GenericTypeHolder.class.getDeclaredField("superStringListArray").getGenericType();
+
+ assertEquals(rawListType, TypeUtils.getArrayComponentType(rawListTypeArray));
+ assertEquals(objectListType, TypeUtils.getArrayComponentType(objectListTypeArray));
+ assertEquals(unboundListType, TypeUtils.getArrayComponentType(unboundListTypeArray));
+ assertEquals(superObjectListType, TypeUtils.getArrayComponentType(superObjectListTypeArray));
+ assertEquals(stringListType, TypeUtils.getArrayComponentType(stringListTypeArray));
+ assertEquals(subStringListType, TypeUtils.getArrayComponentType(subStringListTypeArray));
+ assertEquals(superStringListType, TypeUtils.getArrayComponentType(superStringListTypeArray));
}
@Test
@@ -431,7 +416,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testGetRawType() throws SecurityException, NoSuchFieldException {
+ public void testGetRawType() throws NoSuchFieldException {
final Type stringParentFieldType = GenericTypeHolder.class.getDeclaredField("stringParent").getGenericType();
final Type integerParentFieldType = GenericTypeHolder.class.getDeclaredField("integerParent").getGenericType();
final Type foosFieldType = GenericTypeHolder.class.getDeclaredField("foos").getGenericType();
@@ -451,7 +436,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
* Tests https://issues.apache.org/jira/browse/LANG-1697
*/
@Test
- public void testGetRawType_LANG_1697() throws NoSuchFieldException {
+ public void testGetRawType_LANG_1697() {
assertEquals(int[].class, TypeUtils.getRawType(TypeUtils.genericArrayType(Integer.TYPE), Integer.TYPE));
// LANG-1697:
assertNull(TypeUtils.getRawType(TypeUtils.genericArrayType(TypeUtils.WILDCARD_ALL), null));
@@ -511,27 +496,38 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testIsArrayGenericTypes() throws Exception {
- final Method method = getClass().getMethod("dummyMethod", List.class, List.class, List.class,
- List.class, List.class, List.class, List.class, List[].class, List[].class,
- List[].class, List[].class, List[].class, List[].class, List[].class);
-
- final Type[] types = method.getGenericParameterTypes();
-
- assertFalse(TypeUtils.isArrayType(types[0]));
- assertFalse(TypeUtils.isArrayType(types[1]));
- assertFalse(TypeUtils.isArrayType(types[2]));
- assertFalse(TypeUtils.isArrayType(types[3]));
- assertFalse(TypeUtils.isArrayType(types[4]));
- assertFalse(TypeUtils.isArrayType(types[5]));
- assertFalse(TypeUtils.isArrayType(types[6]));
- assertTrue(TypeUtils.isArrayType(types[7]));
- assertTrue(TypeUtils.isArrayType(types[8]));
- assertTrue(TypeUtils.isArrayType(types[9]));
- assertTrue(TypeUtils.isArrayType(types[10]));
- assertTrue(TypeUtils.isArrayType(types[11]));
- assertTrue(TypeUtils.isArrayType(types[12]));
- assertTrue(TypeUtils.isArrayType(types[13]));
+ public void testIsArrayGenericTypes() throws NoSuchFieldException {
+ final Type rawListType = GenericTypeHolder.class.getDeclaredField("rawList").getGenericType();
+ final Type objectListType = GenericTypeHolder.class.getDeclaredField("objectList").getGenericType();
+ final Type unboundListType = GenericTypeHolder.class.getDeclaredField("unboundList").getGenericType();
+ final Type superObjectListType = GenericTypeHolder.class.getDeclaredField("superObjectList").getGenericType();
+ final Type stringListType = GenericTypeHolder.class.getDeclaredField("stringList").getGenericType();
+ final Type subStringListType = GenericTypeHolder.class.getDeclaredField("subStringList").getGenericType();
+ final Type superStringListType = GenericTypeHolder.class.getDeclaredField("superStringList").getGenericType();
+
+ assertFalse(TypeUtils.isArrayType(rawListType));
+ assertFalse(TypeUtils.isArrayType(objectListType));
+ assertFalse(TypeUtils.isArrayType(unboundListType));
+ assertFalse(TypeUtils.isArrayType(superObjectListType));
+ assertFalse(TypeUtils.isArrayType(stringListType));
+ assertFalse(TypeUtils.isArrayType(subStringListType));
+ assertFalse(TypeUtils.isArrayType(superStringListType));
+
+ final Type rawListTypeArray = GenericTypeHolder.class.getDeclaredField("rawListArray").getGenericType();
+ final Type objectListTypeArray = GenericTypeHolder.class.getDeclaredField("objectListArray").getGenericType();
+ final Type unboundListTypeArray = GenericTypeHolder.class.getDeclaredField("unboundListArray").getGenericType();
+ final Type superObjectListTypeArray = GenericTypeHolder.class.getDeclaredField("superObjectListArray").getGenericType();
+ final Type stringListTypeArray = GenericTypeHolder.class.getDeclaredField("stringListArray").getGenericType();
+ final Type subStringListTypeArray = GenericTypeHolder.class.getDeclaredField("subStringListArray").getGenericType();
+ final Type superStringListTypeArray = GenericTypeHolder.class.getDeclaredField("superStringListArray").getGenericType();
+
+ assertTrue(TypeUtils.isArrayType(rawListTypeArray));
+ assertTrue(TypeUtils.isArrayType(objectListTypeArray));
+ assertTrue(TypeUtils.isArrayType(unboundListTypeArray));
+ assertTrue(TypeUtils.isArrayType(superObjectListTypeArray));
+ assertTrue(TypeUtils.isArrayType(stringListTypeArray));
+ assertTrue(TypeUtils.isArrayType(subStringListTypeArray));
+ assertTrue(TypeUtils.isArrayType(superStringListTypeArray));
}
@Test
@@ -559,360 +555,229 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
assertFalse(TypeUtils.isArrayType(String.class));
}
- @SuppressWarnings("boxing") // deliberately used here
@Test
- public void testIsAssignable() throws SecurityException, NoSuchMethodException,
- NoSuchFieldException {
- List list0 = null;
- List<Object> list1;
- List<?> list2;
- List<? super Object> list3;
- List<String> list4;
- List<? extends String> list5;
- List<? super String> list6;
- List[] list7 = null;
- List<Object>[] list8;
- List<?>[] list9;
- List<? super Object>[] list10;
- List<String>[] list11;
- List<? extends String>[] list12;
- List<? super String>[] list13;
- final Class<?> clazz = getClass();
- final Method method = clazz.getMethod("dummyMethod", List.class, List.class, List.class,
- List.class, List.class, List.class, List.class, List[].class, List[].class,
- List[].class, List[].class, List[].class, List[].class, List[].class);
- final Type[] types = method.getGenericParameterTypes();
-// list0 = list0;
- delegateBooleanAssertion(types, 0, 0, true);
- list1 = list0;
- delegateBooleanAssertion(types, 0, 1, true);
- list0 = list1;
- delegateBooleanAssertion(types, 1, 0, true);
- list2 = list0;
- delegateBooleanAssertion(types, 0, 2, true);
- list0 = list2;
- delegateBooleanAssertion(types, 2, 0, true);
- list3 = list0;
- delegateBooleanAssertion(types, 0, 3, true);
- list0 = list3;
- delegateBooleanAssertion(types, 3, 0, true);
- list4 = list0;
- delegateBooleanAssertion(types, 0, 4, true);
- list0 = list4;
- delegateBooleanAssertion(types, 4, 0, true);
- list5 = list0;
- delegateBooleanAssertion(types, 0, 5, true);
- list0 = list5;
- delegateBooleanAssertion(types, 5, 0, true);
- list6 = list0;
- delegateBooleanAssertion(types, 0, 6, true);
- list0 = list6;
- delegateBooleanAssertion(types, 6, 0, true);
-// list1 = list1;
- delegateBooleanAssertion(types, 1, 1, true);
- list2 = list1;
- delegateBooleanAssertion(types, 1, 2, true);
- list1 = (List<Object>) list2;
- delegateBooleanAssertion(types, 2, 1, false);
- list3 = list1;
- delegateBooleanAssertion(types, 1, 3, true);
- list1 = (List<Object>) list3;
- delegateBooleanAssertion(types, 3, 1, false);
- // list4 = list1;
- delegateBooleanAssertion(types, 1, 4, false);
- // list1 = list4;
- delegateBooleanAssertion(types, 4, 1, false);
- // list5 = list1;
- delegateBooleanAssertion(types, 1, 5, false);
- // list1 = list5;
- delegateBooleanAssertion(types, 5, 1, false);
- list6 = list1;
- delegateBooleanAssertion(types, 1, 6, true);
- list1 = (List<Object>) list6;
- delegateBooleanAssertion(types, 6, 1, false);
-// list2 = list2;
- delegateBooleanAssertion(types, 2, 2, true);
- list2 = list3;
- delegateBooleanAssertion(types, 2, 3, false);
- list2 = list4;
- delegateBooleanAssertion(types, 3, 2, true);
- list3 = (List<? super Object>) list2;
- delegateBooleanAssertion(types, 2, 4, false);
- list2 = list5;
- delegateBooleanAssertion(types, 4, 2, true);
- list4 = (List<String>) list2;
- delegateBooleanAssertion(types, 2, 5, false);
- list2 = list6;
- delegateBooleanAssertion(types, 5, 2, true);
- list5 = (List<? extends String>) list2;
- delegateBooleanAssertion(types, 2, 6, false);
-// list3 = list3;
- delegateBooleanAssertion(types, 6, 2, true);
- list6 = (List<? super String>) list2;
- delegateBooleanAssertion(types, 3, 3, true);
- // list4 = list3;
- delegateBooleanAssertion(types, 3, 4, false);
- // list3 = list4;
- delegateBooleanAssertion(types, 4, 3, false);
- // list5 = list3;
- delegateBooleanAssertion(types, 3, 5, false);
- // list3 = list5;
- delegateBooleanAssertion(types, 5, 3, false);
- list6 = list3;
- delegateBooleanAssertion(types, 3, 6, true);
- list3 = (List<? super Object>) list6;
- delegateBooleanAssertion(types, 6, 3, false);
-// list4 = list4;
- delegateBooleanAssertion(types, 4, 4, true);
- list5 = list4;
- delegateBooleanAssertion(types, 4, 5, true);
- list4 = (List<String>) list5;
- delegateBooleanAssertion(types, 5, 4, false);
- list6 = list4;
- delegateBooleanAssertion(types, 4, 6, true);
- list4 = (List<String>) list6;
- delegateBooleanAssertion(types, 6, 4, false);
-// list5 = list5;
- delegateBooleanAssertion(types, 5, 5, true);
- list6 = (List<? super String>) list5;
- delegateBooleanAssertion(types, 5, 6, false);
- list5 = (List<? extends String>) list6;
- delegateBooleanAssertion(types, 6, 5, false);
-// list6 = list6;
- delegateBooleanAssertion(types, 6, 6, true);
-
-// list7 = list7;
- delegateBooleanAssertion(types, 7, 7, true);
- list8 = list7;
- delegateBooleanAssertion(types, 7, 8, true);
- list7 = list8;
- delegateBooleanAssertion(types, 8, 7, true);
- list9 = list7;
- delegateBooleanAssertion(types, 7, 9, true);
- list7 = list9;
- delegateBooleanAssertion(types, 9, 7, true);
- list10 = list7;
- delegateBooleanAssertion(types, 7, 10, true);
- list7 = list10;
- delegateBooleanAssertion(types, 10, 7, true);
- list11 = list7;
- delegateBooleanAssertion(types, 7, 11, true);
- list7 = list11;
- delegateBooleanAssertion(types, 11, 7, true);
- list12 = list7;
- delegateBooleanAssertion(types, 7, 12, true);
- list7 = list12;
- delegateBooleanAssertion(types, 12, 7, true);
- list13 = list7;
- delegateBooleanAssertion(types, 7, 13, true);
- list7 = list13;
- delegateBooleanAssertion(types, 13, 7, true);
-// list8 = list8;
- delegateBooleanAssertion(types, 8, 8, true);
- list9 = list8;
- delegateBooleanAssertion(types, 8, 9, true);
- list8 = (List<Object>[]) list9;
- delegateBooleanAssertion(types, 9, 8, false);
- list10 = list8;
- delegateBooleanAssertion(types, 8, 10, true);
- list8 = (List<Object>[]) list10; // NOTE cast is required by Sun Java, but not by Eclipse
- delegateBooleanAssertion(types, 10, 8, false);
- // list11 = list8;
- delegateBooleanAssertion(types, 8, 11, false);
- // list8 = list11;
- delegateBooleanAssertion(types, 11, 8, false);
- // list12 = list8;
- delegateBooleanAssertion(types, 8, 12, false);
- // list8 = list12;
- delegateBooleanAssertion(types, 12, 8, false);
- list13 = list8;
- delegateBooleanAssertion(types, 8, 13, true);
- list8 = (List<Object>[]) list13;
- delegateBooleanAssertion(types, 13, 8, false);
-// list9 = list9;
- delegateBooleanAssertion(types, 9, 9, true);
- list10 = (List<? super Object>[]) list9;
- delegateBooleanAssertion(types, 9, 10, false);
- list9 = list10;
- delegateBooleanAssertion(types, 10, 9, true);
- list11 = (List<String>[]) list9;
- delegateBooleanAssertion(types, 9, 11, false);
- list9 = list11;
- delegateBooleanAssertion(types, 11, 9, true);
- list12 = (List<? extends String>[]) list9;
- delegateBooleanAssertion(types, 9, 12, false);
- list9 = list12;
- delegateBooleanAssertion(types, 12, 9, true);
- list13 = (List<? super String>[]) list9;
- delegateBooleanAssertion(types, 9, 13, false);
- list9 = list13;
- delegateBooleanAssertion(types, 13, 9, true);
-// list10 = list10;
- delegateBooleanAssertion(types, 10, 10, true);
- // list11 = list10;
- delegateBooleanAssertion(types, 10, 11, false);
- // list10 = list11;
- delegateBooleanAssertion(types, 11, 10, false);
- // list12 = list10;
- delegateBooleanAssertion(types, 10, 12, false);
- // list10 = list12;
- delegateBooleanAssertion(types, 12, 10, false);
- list13 = list10;
- delegateBooleanAssertion(types, 10, 13, true);
- list10 = (List<? super Object>[]) list13;
- delegateBooleanAssertion(types, 13, 10, false);
-// list11 = list11;
- delegateBooleanAssertion(types, 11, 11, true);
- list12 = list11;
- delegateBooleanAssertion(types, 11, 12, true);
- list11 = (List<String>[]) list12;
- delegateBooleanAssertion(types, 12, 11, false);
- list13 = list11;
- delegateBooleanAssertion(types, 11, 13, true);
- list11 = (List<String>[]) list13;
- delegateBooleanAssertion(types, 13, 11, false);
-// list12 = list12;
- delegateBooleanAssertion(types, 12, 12, true);
- list13 = (List<? super String>[]) list12;
- delegateBooleanAssertion(types, 12, 13, false);
- list12 = (List<? extends String>[]) list13;
- delegateBooleanAssertion(types, 13, 12, false);
-// list13 = list13;
- delegateBooleanAssertion(types, 13, 13, true);
- final Type disType = getClass().getField("dis").getGenericType();
- // Reporter.log( ( ( ParameterizedType ) disType
- // ).getOwnerType().getClass().toString() );
- final Type datType = getClass().getField("dat").getGenericType();
- final Type daType = getClass().getField("da").getGenericType();
- final Type uhderType = getClass().getField("uhder").getGenericType();
- final Type dingType = getClass().getField("ding").getGenericType();
- final Type testerType = getClass().getField("tester").getGenericType();
- final Type tester2Type = getClass().getField("tester2").getGenericType();
- final Type dat2Type = getClass().getField("dat2").getGenericType();
- final Type dat3Type = getClass().getField("dat3").getGenericType();
- dis = dat;
- assertTrue(TypeUtils.isAssignable(datType, disType));
- // dis = da;
- assertFalse(TypeUtils.isAssignable(daType, disType));
- dis = uhder;
- assertTrue(TypeUtils.isAssignable(uhderType, disType));
- dis = ding;
- assertFalse(TypeUtils.isAssignable(dingType, disType),
- String.format("type %s not assignable to %s!", dingType, disType));
- dis = tester;
- assertTrue(TypeUtils.isAssignable(testerType, disType));
- // dis = tester2;
- assertFalse(TypeUtils.isAssignable(tester2Type, disType));
- // dat = dat2;
- assertFalse(TypeUtils.isAssignable(dat2Type, datType));
- // dat2 = dat;
- assertFalse(TypeUtils.isAssignable(datType, dat2Type));
- // dat = dat3;
- assertFalse(TypeUtils.isAssignable(dat3Type, datType));
- final char ch = 0;
- final boolean bo = false;
- final byte by = 0;
- final short sh = 0;
- int in = 0;
- long lo = 0;
- final float fl = 0;
- double du;
- du = ch;
+ public void testIsAssignableClasses() {
assertTrue(TypeUtils.isAssignable(char.class, double.class));
- du = by;
assertTrue(TypeUtils.isAssignable(byte.class, double.class));
- du = sh;
assertTrue(TypeUtils.isAssignable(short.class, double.class));
- du = in;
assertTrue(TypeUtils.isAssignable(int.class, double.class));
- du = lo;
assertTrue(TypeUtils.isAssignable(long.class, double.class));
- du = fl;
assertTrue(TypeUtils.isAssignable(float.class, double.class));
- lo = in;
+
assertTrue(TypeUtils.isAssignable(int.class, long.class));
- lo = Integer.valueOf(0);
assertTrue(TypeUtils.isAssignable(Integer.class, long.class));
- // Long lngW = 1;
assertFalse(TypeUtils.isAssignable(int.class, Long.class));
- // lngW = Integer.valueOf( 0 );
assertFalse(TypeUtils.isAssignable(Integer.class, Long.class));
- in = Integer.valueOf(0);
assertTrue(TypeUtils.isAssignable(Integer.class, int.class));
- final Integer inte = in;
assertTrue(TypeUtils.isAssignable(int.class, Integer.class));
assertTrue(TypeUtils.isAssignable(int.class, Number.class));
assertTrue(TypeUtils.isAssignable(int.class, Object.class));
- final Type intComparableType = getClass().getField("intComparable").getGenericType();
- intComparable = 1;
- assertTrue(TypeUtils.isAssignable(int.class, intComparableType));
assertTrue(TypeUtils.isAssignable(int.class, Comparable.class));
- final Serializable ser = 1;
assertTrue(TypeUtils.isAssignable(int.class, Serializable.class));
- final Type longComparableType = getClass().getField("longComparable").getGenericType();
- // longComparable = 1;
- assertFalse(TypeUtils.isAssignable(int.class, longComparableType));
- // longComparable = Integer.valueOf( 0 );
- assertFalse(TypeUtils.isAssignable(Integer.class, longComparableType));
- // int[] ia;
- // long[] la = ia;
+
assertFalse(TypeUtils.isAssignable(int[].class, long[].class));
- final Integer[] ia = null;
- final Type caType = getClass().getField("intWildcardComparable").getGenericType();
- intWildcardComparable = ia;
- assertTrue(TypeUtils.isAssignable(Integer[].class, caType));
- // int[] ina = ia;
assertFalse(TypeUtils.isAssignable(Integer[].class, int[].class));
- final int[] ina = null;
- final Object[] oa;
- // oa = ina;
assertFalse(TypeUtils.isAssignable(int[].class, Object[].class));
- oa = new Integer[0];
assertTrue(TypeUtils.isAssignable(Integer[].class, Object[].class));
- final Type bClassType = AClass.class.getField("bClass").getGenericType();
- final Type cClassType = AClass.class.getField("cClass").getGenericType();
- final Type dClassType = AClass.class.getField("dClass").getGenericType();
- final Type eClassType = AClass.class.getField("eClass").getGenericType();
- final Type fClassType = AClass.class.getField("fClass").getGenericType();
- final AClass aClass = new AClass(new AAClass<>());
- aClass.bClass = aClass.cClass;
+ }
+
+ @Test
+ public void testIsAssignableGenericComparableTypes() throws NoSuchFieldException {
+ final Type intComparableType = getClass().getField("intComparable").getGenericType();
+ assertTrue(TypeUtils.isAssignable(int.class, intComparableType));
+
+ final Type longComparableType = getClass().getField("longComparable").getGenericType();
+ assertFalse(TypeUtils.isAssignable(int.class, longComparableType));
+ assertFalse(TypeUtils.isAssignable(Integer.class, longComparableType));
+
+ final Type intComparableArrayType = getClass().getField("intWildcardComparable").getGenericType();
+ assertTrue(TypeUtils.isAssignable(Integer[].class, intComparableArrayType));
+ }
+
+ @Test
+ public void testIsAssignableGenericListTypes() throws NoSuchFieldException {
+ final Type rawListType = GenericTypeHolder.class.getDeclaredField("rawList").getGenericType();
+ final Type objectListType = GenericTypeHolder.class.getDeclaredField("objectList").getGenericType();
+ final Type unboundListType = GenericTypeHolder.class.getDeclaredField("unboundList").getGenericType();
+ final Type superObjectListType = GenericTypeHolder.class.getDeclaredField("superObjectList").getGenericType();
+ final Type stringListType = GenericTypeHolder.class.getDeclaredField("stringList").getGenericType();
+ final Type subStringListType = GenericTypeHolder.class.getDeclaredField("subStringList").getGenericType();
+ final Type superStringListType = GenericTypeHolder.class.getDeclaredField("superStringList").getGenericType();
+
+ assertTrue(TypeUtils.isAssignable(rawListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, objectListType));
+ assertTrue(TypeUtils.isAssignable(objectListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, unboundListType));
+ assertTrue(TypeUtils.isAssignable(unboundListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, superObjectListType));
+ assertTrue(TypeUtils.isAssignable(superObjectListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, stringListType));
+ assertTrue(TypeUtils.isAssignable(stringListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, subStringListType));
+ assertTrue(TypeUtils.isAssignable(subStringListType, rawListType));
+ assertTrue(TypeUtils.isAssignable(rawListType, superStringListType));
+ assertTrue(TypeUtils.isAssignable(superStringListType, rawListType));
+
+ assertTrue(TypeUtils.isAssignable(objectListType, objectListType));
+ assertTrue(TypeUtils.isAssignable(objectListType, unboundListType));
+ assertFalse(TypeUtils.isAssignable(unboundListType, objectListType));
+ assertTrue(TypeUtils.isAssignable(objectListType, superObjectListType));
+ assertFalse(TypeUtils.isAssignable(superObjectListType, objectListType));
+ assertFalse(TypeUtils.isAssignable(objectListType, stringListType));
+ assertFalse(TypeUtils.isAssignable(stringListType, objectListType));
+ assertFalse(TypeUtils.isAssignable(objectListType, subStringListType));
+ assertFalse(TypeUtils.isAssignable(subStringListType, objectListType));
+ assertTrue(TypeUtils.isAssignable(objectListType, superStringListType));
+ assertFalse(TypeUtils.isAssignable(superStringListType, objectListType));
+
+ assertTrue(TypeUtils.isAssignable(unboundListType, unboundListType));
+ assertFalse(TypeUtils.isAssignable(unboundListType, superObjectListType));
+ assertTrue(TypeUtils.isAssignable(superObjectListType, unboundListType));
+ assertFalse(TypeUtils.isAssignable(unboundListType, stringListType));
+ assertTrue(TypeUtils.isAssignable(stringListType, unboundListType));
+ assertFalse(TypeUtils.isAssignable(unboundListType, subStringListType));
+ assertTrue(TypeUtils.isAssignable(subStringListType, unboundListType));
+ assertFalse(TypeUtils.isAssignable(unboundListType, superStringListType));
+ assertTrue(TypeUtils.isAssignable(superStringListType, unboundListType));
+
+ assertTrue(TypeUtils.isAssignable(superObjectListType, superObjectListType));
+ assertFalse(TypeUtils.isAssignable(superObjectListType, stringListType));
+ assertFalse(TypeUtils.isAssignable(stringListType, superObjectListType));
+ assertFalse(TypeUtils.isAssignable(superObjectListType, subStringListType));
+ assertFalse(TypeUtils.isAssignable(subStringListType, superObjectListType));
+ assertTrue(TypeUtils.isAssignable(superObjectListType, superStringListType));
+ assertFalse(TypeUtils.isAssignable(superStringListType, superObjectListType));
+
+ assertTrue(TypeUtils.isAssignable(stringListType, stringListType));
+ assertTrue(TypeUtils.isAssignable(stringListType, subStringListType));
+ assertFalse(TypeUtils.isAssignable(subStringListType, stringListType));
+ assertTrue(TypeUtils.isAssignable(stringListType, superStringListType));
+ assertFalse(TypeUtils.isAssignable(superStringListType, stringListType));
+
+ assertTrue(TypeUtils.isAssignable(subStringListType, subStringListType));
+ assertFalse(TypeUtils.isAssignable(subStringListType, superStringListType));
+ assertFalse(TypeUtils.isAssignable(superStringListType, subStringListType));
+ assertTrue(TypeUtils.isAssignable(superStringListType, superStringListType));
+ }
+
+ @Test
+ public void testIsAssignableGenericListArrays() throws NoSuchFieldException {
+ final Type rawListTypeArray = GenericTypeHolder.class.getDeclaredField("rawListArray").getGenericType();
+ final Type objectListTypeArray = GenericTypeHolder.class.getDeclaredField("objectListArray").getGenericType();
+ final Type unboundListTypeArray = GenericTypeHolder.class.getDeclaredField("unboundListArray").getGenericType();
+ final Type superObjectListTypeArray = GenericTypeHolder.class.getDeclaredField("superObjectListArray").getGenericType();
+ final Type stringListTypeArray = GenericTypeHolder.class.getDeclaredField("stringListArray").getGenericType();
+ final Type subStringListTypeArray = GenericTypeHolder.class.getDeclaredField("subStringListArray").getGenericType();
+ final Type superStringListTypeArray = GenericTypeHolder.class.getDeclaredField("superStringListArray").getGenericType();
+
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, objectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(objectListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, unboundListTypeArray));
+ assertTrue(TypeUtils.isAssignable(unboundListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, superObjectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superObjectListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, stringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(stringListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, subStringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(subStringListTypeArray, rawListTypeArray));
+ assertTrue(TypeUtils.isAssignable(rawListTypeArray, superStringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superStringListTypeArray, rawListTypeArray));
+
+ assertTrue(TypeUtils.isAssignable(objectListTypeArray, objectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(objectListTypeArray, unboundListTypeArray));
+ assertFalse(TypeUtils.isAssignable(unboundListTypeArray, objectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(objectListTypeArray, superObjectListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superObjectListTypeArray, objectListTypeArray));
+ assertFalse(TypeUtils.isAssignable(objectListTypeArray, stringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(stringListTypeArray, objectListTypeArray));
+ assertFalse(TypeUtils.isAssignable(objectListTypeArray, subStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(subStringListTypeArray, objectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(objectListTypeArray, superStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superStringListTypeArray, objectListTypeArray));
+
+ assertTrue(TypeUtils.isAssignable(unboundListTypeArray, unboundListTypeArray));
+ assertFalse(TypeUtils.isAssignable(unboundListTypeArray, superObjectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superObjectListTypeArray, unboundListTypeArray));
+ assertFalse(TypeUtils.isAssignable(unboundListTypeArray, stringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(stringListTypeArray, unboundListTypeArray));
+ assertFalse(TypeUtils.isAssignable(unboundListTypeArray, subStringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(subStringListTypeArray, unboundListTypeArray));
+ assertFalse(TypeUtils.isAssignable(unboundListTypeArray, superStringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superStringListTypeArray, unboundListTypeArray));
+
+ assertTrue(TypeUtils.isAssignable(superObjectListTypeArray, superObjectListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superObjectListTypeArray, stringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(stringListTypeArray, superObjectListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superObjectListTypeArray, subStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(subStringListTypeArray, superObjectListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superObjectListTypeArray, superStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superStringListTypeArray, superObjectListTypeArray));
+
+ assertTrue(TypeUtils.isAssignable(stringListTypeArray, stringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(stringListTypeArray, subStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(subStringListTypeArray, stringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(stringListTypeArray, superStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superStringListTypeArray, stringListTypeArray));
+
+ assertTrue(TypeUtils.isAssignable(subStringListTypeArray, subStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(subStringListTypeArray, superStringListTypeArray));
+ assertFalse(TypeUtils.isAssignable(superStringListTypeArray, subStringListTypeArray));
+ assertTrue(TypeUtils.isAssignable(superStringListTypeArray, superStringListTypeArray));
+ }
+
+ @Test
+ public void testIsAssignableDirectClassHierarchy() throws NoSuchFieldException {
+ final Type bClassType = AClass.class.getField("bClass").getGenericType(); // B is superclass
+ final Type cClassType = AClass.class.getField("cClass").getGenericType(); // C subclass of B
+ final Type dClassType = AClass.class.getField("dClass").getGenericType(); // D subclass of C
+ final Type eClassType = AClass.class.getField("eClass").getGenericType(); // E subclass of D
+ final Type fClassType = AClass.class.getField("fClass").getGenericType(); // F subclass of E
+
assertTrue(TypeUtils.isAssignable(cClassType, bClassType));
- aClass.bClass = aClass.dClass;
assertTrue(TypeUtils.isAssignable(dClassType, bClassType));
- aClass.bClass = aClass.eClass;
assertTrue(TypeUtils.isAssignable(eClassType, bClassType));
- aClass.bClass = aClass.fClass;
assertTrue(TypeUtils.isAssignable(fClassType, bClassType));
- aClass.cClass = aClass.dClass;
+
assertTrue(TypeUtils.isAssignable(dClassType, cClassType));
- aClass.cClass = aClass.eClass;
assertTrue(TypeUtils.isAssignable(eClassType, cClassType));
- aClass.cClass = aClass.fClass;
assertTrue(TypeUtils.isAssignable(fClassType, cClassType));
- aClass.dClass = aClass.eClass;
+
assertTrue(TypeUtils.isAssignable(eClassType, dClassType));
- aClass.dClass = aClass.fClass;
assertTrue(TypeUtils.isAssignable(fClassType, dClassType));
- aClass.eClass = aClass.fClass;
+
assertTrue(TypeUtils.isAssignable(fClassType, eClassType));
}
- private void testIsAssignable(final Class testUnassignableClass) {
- final Class<Constructor> rawClass = Constructor.class;
- final Class<Insets> typeArgClass = Insets.class;
- // Builds a ParameterizedType for Constructor<Insets>
- final ParameterizedType paramType = TypeUtils.parameterize(rawClass, typeArgClass);
- assertEquals(rawClass, paramType.getRawType());
- assertEquals(typeArgClass, paramType.getActualTypeArguments()[0]);
+ @Test
+ public void testIsAssignableGenericClassHierarchy() throws NoSuchFieldException {
+ /*
+ * <<This>>
+ * / / \ \
+ * <<And>> That Other Tester
+ * \ / |
+ * The Thing
+ */
+ final Type disType = getClass().getField("dis").getGenericType(); // This is superinterface
+ final Type datType = getClass().getField("dat").getGenericType(); // That implements This
+ final Type dat2Type = getClass().getField("dat2").getGenericType();
+ final Type dat3Type = getClass().getField("dat3").getGenericType();
+ final Type daType = getClass().getField("da").getGenericType(); // The extends That and implements And
+ final Type uhderType = getClass().getField("uhder").getGenericType(); // Other implements This
+ final Type dingType = getClass().getField("ding").getGenericType(); // Thing extends Other
+ final Type testerType = getClass().getField("tester").getGenericType(); // Tester implements This
+ final Type tester2Type = getClass().getField("tester2").getGenericType();
- assertFalse(testUnassignableClass.isAssignableFrom(paramType.getClass()));
- assertFalse(paramType.getClass().isAssignableFrom(testUnassignableClass));
+ assertTrue(TypeUtils.isAssignable(datType, disType));
+ assertFalse(TypeUtils.isAssignable(daType, disType));
+ assertTrue(TypeUtils.isAssignable(uhderType, disType));
+ assertFalse(TypeUtils.isAssignable(dingType, disType));
+ assertTrue(TypeUtils.isAssignable(testerType, disType));
+ assertFalse(TypeUtils.isAssignable(tester2Type, disType));
- final GenericArrayType arrayType = TypeUtils.genericArrayType(paramType);
- assertFalse(TypeUtils.isAssignable(arrayType, paramType),
- () -> String.format("TypeUtils.isAssignable(%s, %s)", arrayType, paramType));
- assertFalse(TypeUtils.isAssignable(paramType, arrayType),
- () -> String.format("TypeUtils.isAssignable(%s, %s)", paramType, arrayType));
+ assertFalse(TypeUtils.isAssignable(dat2Type, datType));
+ assertFalse(TypeUtils.isAssignable(datType, dat2Type));
+ assertFalse(TypeUtils.isAssignable(dat3Type, datType));
}
@Test
@@ -977,12 +842,10 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
@SuppressWarnings("boxing") // boxing is deliberate here
@Test
- public void testIsInstance() throws SecurityException, NoSuchFieldException {
+ public void testIsInstance() throws NoSuchFieldException {
final Type intComparableType = getClass().getField("intComparable").getGenericType();
final Type uriComparableType = getClass().getField("uriComparable").getGenericType();
- intComparable = 1;
assertTrue(TypeUtils.isInstance(1, intComparableType));
- // uriComparable = 1;
assertFalse(TypeUtils.isInstance(1, uriComparableType));
}
@@ -999,7 +862,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testParameterize() throws Exception {
+ public void testParameterize() throws NoSuchFieldException {
final ParameterizedType stringComparableType = TypeUtils.parameterize(Comparable.class, String.class);
assertTrue(TypeUtils.equals(getClass().getField("stringComparable").getGenericType(),
stringComparableType));
@@ -1028,7 +891,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testParameterizeWithOwner() throws Exception {
+ public void testParameterizeWithOwner() throws NoSuchFieldException {
final Type owner = TypeUtils.parameterize(TypeUtilsTest.class, String.class);
final ParameterizedType dat2Type = TypeUtils.parameterizeWithOwner(owner, That.class, String.class, String.class);
assertTrue(TypeUtils.equals(getClass().getField("dat2").getGenericType(), dat2Type));
@@ -1064,8 +927,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testTypesSatisfyVariables() throws SecurityException,
- NoSuchMethodException {
+ public void testTypesSatisfyVariables() throws NoSuchMethodException {
final Map<TypeVariable<?>, Type> typeVarAssigns = new HashMap<>();
final Integer max = TypeUtilsTest.<Integer>stub();
typeVarAssigns.put(getClass().getMethod("stub").getTypeParameters()[0], Integer.class);
@@ -1096,7 +958,7 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
}
@Test
- public void testWildcardType() throws Exception {
+ public void testWildcardType() throws NoSuchFieldException {
final WildcardType simpleWildcard = TypeUtils.wildcardType().withUpperBounds(String.class).build();
final Field cClass = AClass.class.getField("cClass");
assertTrue(TypeUtils.equals(((ParameterizedType) cClass.getGenericType()).getActualTypeArguments()[0],
diff --git a/src/test/java/org/apache/commons/lang3/reflect/testbed/GenericTypeHolder.java b/src/test/java/org/apache/commons/lang3/reflect/testbed/GenericTypeHolder.java
index 390044cdd..be8008f5d 100644
--- a/src/test/java/org/apache/commons/lang3/reflect/testbed/GenericTypeHolder.java
+++ b/src/test/java/org/apache/commons/lang3/reflect/testbed/GenericTypeHolder.java
@@ -21,9 +21,24 @@ import java.util.List;
/**
* Holds generic testbed types.
*/
+@SuppressWarnings("rawtypes")
public class GenericTypeHolder {
public GenericParent<String> stringParent;
public GenericParent<Integer> integerParent;
public List<Foo> foos;
public GenericParent<Bar>[] barParents;
+ public List rawList;
+ public List<Object> objectList;
+ public List<?> unboundList;
+ public List<? super Object> superObjectList;
+ public List<String> stringList;
+ public List<? extends String> subStringList;
+ public List<? super String> superStringList;
+ public List[] rawListArray;
+ public List<Object>[] objectListArray;
+ public List<?>[] unboundListArray;
+ public List<? super Object>[] superObjectListArray;
+ public List<String>[] stringListArray;
+ public List<? extends String>[] subStringListArray;
+ public List<? super String>[] superStringListArray;
}
diff --git a/src/test/java/org/apache/commons/lang3/text/ExtendedMessageFormatTest.java b/src/test/java/org/apache/commons/lang3/text/ExtendedMessageFormatTest.java
index a7c5fb47e..e4127e295 100644
--- a/src/test/java/org/apache/commons/lang3/text/ExtendedMessageFormatTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/ExtendedMessageFormatTest.java
@@ -201,14 +201,14 @@ public class ExtendedMessageFormatTest extends AbstractLangTest {
buffer.append(locale);
buffer.append("]");
final MessageFormat mf = createMessageFormat(pattern, locale);
- ExtendedMessageFormat emf = null;
+ ExtendedMessageFormat emf;
if (locale == null) {
emf = new ExtendedMessageFormat(pattern);
} else {
emf = new ExtendedMessageFormat(pattern, locale);
}
- assertEquals(mf.format(args), emf.format(args), "format " + buffer.toString());
- assertEquals(mf.toPattern(), emf.toPattern(), "toPattern " + buffer.toString());
+ assertEquals(mf.format(args), emf.format(args), "format " + buffer);
+ assertEquals(mf.toPattern(), emf.toPattern(), "toPattern " + buffer);
}
/**
@@ -395,47 +395,67 @@ public class ExtendedMessageFormatTest extends AbstractLangTest {
assertEquals("it's a dummy test!", emf.format(new Object[] {"DUMMY"}));
}
/**
- * Test extended and built in formats.
+ * Test extended and built-in formats with available locales.
*/
@Test
- public void testExtendedAndBuiltInFormats() {
+ public void testExtendedAndBuiltInFormatsWithAvailableLocales() {
+ final String extendedPattern = "Name: {0,upper} ";
+ final String builtinsPattern = "DOB: {1,date,short} Salary: {2,number,currency}";
+ final String pattern = extendedPattern + builtinsPattern;
+
final Calendar cal = Calendar.getInstance();
cal.set(2007, Calendar.JANUARY, 23, 18, 33, 5);
final Object[] args = {"John Doe", cal.getTime(), Double.valueOf("12345.67")};
- final String builtinsPattern = "DOB: {1,date,short} Salary: {2,number,currency}";
- final String extendedPattern = "Name: {0,upper} ";
- final String pattern = extendedPattern + builtinsPattern;
final HashSet<Locale> testLocales = new HashSet<>(Arrays.asList(DateFormat.getAvailableLocales()));
testLocales.retainAll(Arrays.asList(NumberFormat.getAvailableLocales()));
- testLocales.add(null);
for (final Locale locale : testLocales) {
final MessageFormat builtins = createMessageFormat(builtinsPattern, locale);
final String expectedPattern = extendedPattern + builtins.toPattern();
- DateFormat df = null;
- NumberFormat nf = null;
- ExtendedMessageFormat emf = null;
- if (locale == null) {
- df = DateFormat.getDateInstance(DateFormat.SHORT);
- nf = NumberFormat.getCurrencyInstance();
- emf = new ExtendedMessageFormat(pattern, registry);
- } else {
- df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
- nf = NumberFormat.getCurrencyInstance(locale);
- emf = new ExtendedMessageFormat(pattern, locale, registry);
- }
+ final ExtendedMessageFormat emf = new ExtendedMessageFormat(pattern, locale, registry);
+ assertEquals(expectedPattern, emf.toPattern(), "pattern comparison for locale " + locale);
+
+ final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ final NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
final StringBuilder expected = new StringBuilder();
expected.append("Name: ");
- expected.append(args[0].toString().toUpperCase(Locale.ROOT));
+ expected.append(args[0].toString().toUpperCase(locale));
expected.append(" DOB: ");
expected.append(df.format(args[1]));
expected.append(" Salary: ");
expected.append(nf.format(args[2]));
- assertEquals(expectedPattern, emf.toPattern(), "pattern comparison for locale " + locale);
assertEquals(expected.toString(), emf.format(args), String.valueOf(locale));
}
}
+ /**
+ * Test extended and built-in formats with the default locale.
+ */
+ @Test
+ public void testExtendedAndBuiltInFormatsWithDefaultLocale() {
+ final String extendedPattern = "Name: {0,upper} ";
+ final String builtinsPattern = "DOB: {1,date,short} Salary: {2,number,currency}";
+ final String pattern = extendedPattern + builtinsPattern;
+
+ final ExtendedMessageFormat emf = new ExtendedMessageFormat(pattern, registry);
+ final MessageFormat builtins = createMessageFormat(builtinsPattern, null);
+ final String expectedPattern = extendedPattern + builtins.toPattern();
+ assertEquals(expectedPattern, emf.toPattern(), "pattern comparison for default locale");
+
+ final Calendar cal = Calendar.getInstance();
+ cal.set(2007, Calendar.JANUARY, 23, 18, 33, 5);
+ final Object[] args = {"John Doe", cal.getTime(), Double.valueOf("12345.67")};
+ final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
+ final NumberFormat nf = NumberFormat.getCurrencyInstance();
+ final StringBuilder expected = new StringBuilder();
+ expected.append("Name: ");
+ expected.append(args[0].toString().toUpperCase());
+ expected.append(" DOB: ");
+ expected.append(df.format(args[1]));
+ expected.append(" Salary: ");
+ expected.append(nf.format(args[2]));
+ assertEquals(expected.toString(), emf.format(args));
+ }
/**
* Test extended formats.
*/
diff --git a/src/test/java/org/apache/commons/lang3/text/StrBuilderAppendInsertTest.java b/src/test/java/org/apache/commons/lang3/text/StrBuilderAppendInsertTest.java
index e088a257e..634606953 100644
--- a/src/test/java/org/apache/commons/lang3/text/StrBuilderAppendInsertTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/StrBuilderAppendInsertTest.java
@@ -994,9 +994,9 @@ public class StrBuilderAppendInsertTest extends AbstractLangTest {
sb.appendSeparator(standardSeparator, startSeparator); // no effect
assertEquals(String.valueOf(startSeparator), sb.toString());
sb.append(foo);
- assertEquals(String.valueOf(startSeparator) + foo, sb.toString());
+ assertEquals(startSeparator + foo, sb.toString());
sb.appendSeparator(standardSeparator, startSeparator);
- assertEquals(String.valueOf(startSeparator) + foo + standardSeparator, sb.toString());
+ assertEquals(startSeparator + foo + standardSeparator, sb.toString());
}
@Test
diff --git a/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java b/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java
index cb9700754..49bb8ae2a 100644
--- a/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java
@@ -82,7 +82,7 @@ public class DateUtilsTest extends AbstractLangTest {
private static void assertWeekIterator(final Iterator<?> it, final Calendar start, final Calendar end) {
Calendar cal = (Calendar) it.next();
assertCalendarsEquals("", start, cal, 0);
- Calendar last = null;
+ Calendar last;
int count = 1;
while (it.hasNext()) {
//Check this is just a date (no time component)
diff --git a/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java b/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java
index 7ce2b4720..fbff75e3a 100644
--- a/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java
@@ -136,9 +136,9 @@ public class FastDateParserSDFTest extends AbstractLangTest {
fdfE = e.getClass();
}
if (valid) {
- assertEquals(expectedTime, actualTime, locale.toString()+" "+formattedDate +"\n");
+ assertEquals(expectedTime, actualTime, locale + " " + formattedDate + "\n");
} else {
- assertEquals(sdfE, fdfE, locale.toString()+" "+formattedDate + " expected same Exception ");
+ assertEquals(sdfE, fdfE, locale + " " + formattedDate + " expected same Exception ");
}
}
@@ -173,7 +173,7 @@ public class FastDateParserSDFTest extends AbstractLangTest {
final int endIndex = fdfP.getIndex();
final int length = formattedDate.length();
assertEquals(length, endIndex, "Expected FDF to parse full string " + fdfP);
- assertEquals(expectedTime, actualTime, locale.toString()+" "+formattedDate +"\n");
+ assertEquals(expectedTime, actualTime, locale +" "+formattedDate +"\n");
} else {
assertNotEquals(-1, fdferrorIndex, "Test data error: expected FDF parse to fail, but got " + actualTime);
assertTrue(sdferrorIndex - fdferrorIndex <= 4,
diff --git a/src/test/java/org/apache/commons/lang3/time/FastDateParser_TimeZoneStrategyTest.java b/src/test/java/org/apache/commons/lang3/time/FastDateParser_TimeZoneStrategyTest.java
index c46498caf..b75aeb748 100644
--- a/src/test/java/org/apache/commons/lang3/time/FastDateParser_TimeZoneStrategyTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/FastDateParser_TimeZoneStrategyTest.java
@@ -145,7 +145,7 @@ public class FastDateParser_TimeZoneStrategyTest extends AbstractLangTest {
}
// Hack End
fail(String.format("%s: with locale = %s, zIndex = %,d, tzDisplay = '%s', parser = '%s'", e,
- localeStr, zIndex, tzDisplay, parser.toString()), e);
+ localeStr, zIndex, tzDisplay, parser), e);
}
}
}
diff --git a/src/test/java/org/apache/commons/lang3/util/FluentBitSetTest.java b/src/test/java/org/apache/commons/lang3/util/FluentBitSetTest.java
index 285b4ddcd..cde857ecc 100644
--- a/src/test/java/org/apache/commons/lang3/util/FluentBitSetTest.java
+++ b/src/test/java/org/apache/commons/lang3/util/FluentBitSetTest.java
@@ -506,7 +506,7 @@ public class FluentBitSetTest extends AbstractLangTest {
public void test_ConstructorInt() {
FluentBitSet bs = newInstance(128);
assertEquals(128, bs.size(), "Create FluentBitSet of incorrect size");
- assertEquals("{}", bs.toString(), "New FluentBitSet had invalid string representation: " + bs.toString());
+ assertEquals("{}", bs.toString(), "New FluentBitSet had invalid string representation: " + bs);
// All BitSets are created with elements of multiples of 64
bs = newInstance(89);
assertEquals(128, bs.size(), "Failed to round FluentBitSet element size");