package com.google.gson.internal;
import java.lang.reflect.ParameterizedType;
import org.junit.Test;
import junit.framework.TestCase;
import java.lang.reflect.Type;
public final class GsonTypesTest extends TestCase {
@Test(timeout = 1000)
public void testNewParameterizedTypeWithoutOwner() throws Exception {
fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testNewParameterizedTypeWithoutOwner");
Type type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, java.util.List.class, A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),125,com.google.gson.internal.GsonTypesTest.A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),127,null,126,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),128,com.google.gson.internal.GsonTypesTest.B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),130,null,129,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
final class D { }
try {
com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, D.class, A.class);
} catch (IllegalArgumentException expected) {
}
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),131,D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),133,null,132,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread());
}
@Test(timeout = 1000)
public void testNewParameterizedTypeWithoutOwner_add140() throws Exception {
fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testNewParameterizedTypeWithoutOwner_add140");
Type type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, java.util.List.class, A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),125,com.google.gson.internal.GsonTypesTest.A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),127,null,126,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),128,com.google.gson.internal.GsonTypesTest.B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),130,null,129,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
final class D { }
try {
com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, D.class, A.class);
com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, D.class, A.class);
} catch (IllegalArgumentException expected) {
}
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),131,D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),133,null,132,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread());
}
@Test(timeout = 1000)
public void testNewParameterizedTypeWithoutOwner_remove111() throws Exception {
fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testNewParameterizedTypeWithoutOwner_remove111");
Type type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, java.util.List.class, A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),125,com.google.gson.internal.GsonTypesTest.A.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),127,null,126,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),128,com.google.gson.internal.GsonTypesTest.B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),130,null,129,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
final class D { }
try {
com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, D.class, A.class);
} catch (IllegalArgumentException expected) {
}
type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),131,D.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),133,null,132,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread());
}
public void testGetFirstTypeArgument() throws Exception {
fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testGetFirstTypeArgument");
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),121,null,120,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(com.google.gson.internal.GsonTypesTest.A.class));
Type type = com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class, C.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),122,com.google.gson.internal.GsonTypesTest.B.class);
fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),124,null,123,com.google.gson.internal.GsonTypesTest.getFirstTypeArgument(type));
fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread());
}
private static final class A { }
private static final class B { }
private static final class C { }
/**
* Given a parameterized type A<B,C>, returns B. If the specified type is not
* a generic type, returns null.
*/
public static Type getFirstTypeArgument(Type type) throws Exception {
if (!(type instanceof ParameterizedType))
return null;
ParameterizedType ptype = ((ParameterizedType)(type));
Type[] actualTypeArguments = ptype.getActualTypeArguments();
if ((actualTypeArguments.length) == 0)
return null;
return com.google.gson.internal.$Gson$Types.canonicalize(actualTypeArguments[0]);
}
}