|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2013 the original author or authors. |
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -46,7 +46,7 @@ public class SerializableTypeWrapperTests { |
|
|
|
public void forField() throws Exception { |
|
|
|
public void forField() throws Exception { |
|
|
|
Type type = SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType")); |
|
|
|
Type type = SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
@ -54,7 +54,7 @@ public class SerializableTypeWrapperTests { |
|
|
|
Method method = Methods.class.getDeclaredMethod("method", Class.class, Object.class); |
|
|
|
Method method = Methods.class.getDeclaredMethod("method", Class.class, Object.class); |
|
|
|
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(method, 0)); |
|
|
|
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(method, 0)); |
|
|
|
assertThat(type.toString(), equalTo("java.lang.Class<T>")); |
|
|
|
assertThat(type.toString(), equalTo("java.lang.Class<T>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
@ -62,62 +62,62 @@ public class SerializableTypeWrapperTests { |
|
|
|
Constructor<?> constructor = Constructors.class.getDeclaredConstructor(List.class); |
|
|
|
Constructor<?> constructor = Constructors.class.getDeclaredConstructor(List.class); |
|
|
|
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(constructor, 0)); |
|
|
|
Type type = SerializableTypeWrapper.forMethodParameter(MethodParameter.forMethodOrConstructor(constructor, 0)); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void forGenericSuperClass() throws Exception { |
|
|
|
public void forGenericSuperClass() throws Exception { |
|
|
|
Type type = SerializableTypeWrapper.forGenericSuperclass(ArrayList.class); |
|
|
|
Type type = SerializableTypeWrapper.forGenericSuperclass(ArrayList.class); |
|
|
|
assertThat(type.toString(), equalTo("java.util.AbstractList<E>")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.AbstractList<E>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void forGenericInterfaces() throws Exception { |
|
|
|
public void forGenericInterfaces() throws Exception { |
|
|
|
Type type = SerializableTypeWrapper.forGenericInterfaces(List.class)[0]; |
|
|
|
Type type = SerializableTypeWrapper.forGenericInterfaces(List.class)[0]; |
|
|
|
assertThat(type.toString(), equalTo("java.util.Collection<E>")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.Collection<E>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void forTypeParamters() throws Exception { |
|
|
|
public void forTypeParamters() throws Exception { |
|
|
|
Type type = SerializableTypeWrapper.forTypeParameters(List.class)[0]; |
|
|
|
Type type = SerializableTypeWrapper.forTypeParameters(List.class)[0]; |
|
|
|
assertThat(type.toString(), equalTo("E")); |
|
|
|
assertThat(type.toString(), equalTo("E")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void classType() throws Exception { |
|
|
|
public void classType() throws Exception { |
|
|
|
Type type = SerializableTypeWrapper.forField(Fields.class.getField("classType")); |
|
|
|
Type type = SerializableTypeWrapper.forField(Fields.class.getField("classType")); |
|
|
|
assertThat(type.toString(), equalTo("class java.lang.String")); |
|
|
|
assertThat(type.toString(), equalTo("class java.lang.String")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void genericArrayType() throws Exception { |
|
|
|
public void genericArrayType() throws Exception { |
|
|
|
GenericArrayType type = (GenericArrayType) SerializableTypeWrapper.forField(Fields.class.getField("genericArrayType")); |
|
|
|
GenericArrayType type = (GenericArrayType) SerializableTypeWrapper.forField(Fields.class.getField("genericArrayType")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>[]")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>[]")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
assertSerialzable(type.getGenericComponentType()); |
|
|
|
assertSerializable(type.getGenericComponentType()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void parameterizedType() throws Exception { |
|
|
|
public void parameterizedType() throws Exception { |
|
|
|
ParameterizedType type = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType")); |
|
|
|
ParameterizedType type = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("parameterizedType")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertThat(type.toString(), equalTo("java.util.List<java.lang.String>")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
assertSerialzable(type.getOwnerType()); |
|
|
|
assertSerializable(type.getOwnerType()); |
|
|
|
assertSerialzable(type.getRawType()); |
|
|
|
assertSerializable(type.getRawType()); |
|
|
|
assertSerialzable(type.getActualTypeArguments()); |
|
|
|
assertSerializable(type.getActualTypeArguments()); |
|
|
|
assertSerialzable(type.getActualTypeArguments()[0]); |
|
|
|
assertSerializable(type.getActualTypeArguments()[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void typeVariableType() throws Exception { |
|
|
|
public void typeVariableType() throws Exception { |
|
|
|
TypeVariable<?> type = (TypeVariable<?>) SerializableTypeWrapper.forField(Fields.class.getField("typeVariableType")); |
|
|
|
TypeVariable<?> type = (TypeVariable<?>) SerializableTypeWrapper.forField(Fields.class.getField("typeVariableType")); |
|
|
|
assertThat(type.toString(), equalTo("T")); |
|
|
|
assertThat(type.toString(), equalTo("T")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
assertSerialzable(type.getBounds()); |
|
|
|
assertSerializable(type.getBounds()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
@ -125,13 +125,13 @@ public class SerializableTypeWrapperTests { |
|
|
|
ParameterizedType typeSource = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("wildcardType")); |
|
|
|
ParameterizedType typeSource = (ParameterizedType) SerializableTypeWrapper.forField(Fields.class.getField("wildcardType")); |
|
|
|
WildcardType type = (WildcardType) typeSource.getActualTypeArguments()[0]; |
|
|
|
WildcardType type = (WildcardType) typeSource.getActualTypeArguments()[0]; |
|
|
|
assertThat(type.toString(), equalTo("? extends java.lang.CharSequence")); |
|
|
|
assertThat(type.toString(), equalTo("? extends java.lang.CharSequence")); |
|
|
|
assertSerialzable(type); |
|
|
|
assertSerializable(type); |
|
|
|
assertSerialzable(type.getLowerBounds()); |
|
|
|
assertSerializable(type.getLowerBounds()); |
|
|
|
assertSerialzable(type.getUpperBounds()); |
|
|
|
assertSerializable(type.getUpperBounds()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void assertSerialzable(Object source) throws Exception { |
|
|
|
private void assertSerializable(Object source) throws Exception { |
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
|
|
|
ObjectOutputStream oos = new ObjectOutputStream(bos); |
|
|
|
ObjectOutputStream oos = new ObjectOutputStream(bos); |
|
|
|
oos.writeObject(source); |
|
|
|
oos.writeObject(source); |
|
|
|
@ -152,19 +152,19 @@ public class SerializableTypeWrapperTests { |
|
|
|
public T typeVariableType; |
|
|
|
public T typeVariableType; |
|
|
|
|
|
|
|
|
|
|
|
public List<? extends CharSequence> wildcardType; |
|
|
|
public List<? extends CharSequence> wildcardType; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static interface Methods { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<T> List<T> method(Class<T> p1, T p2); |
|
|
|
interface Methods { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<T> List<T> method(Class<T> p1, T p2); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class Constructors { |
|
|
|
static class Constructors { |
|
|
|
|
|
|
|
|
|
|
|
public Constructors(List<String> p) { |
|
|
|
public Constructors(List<String> p) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|