package com.google.gson.functional; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.google.gson.annotations.SerializedName; import org.junit.Test; import junit.framework.TestCase; import java.lang.reflect.Type; import com.google.gson.reflect.TypeToken; /** * Functional tests for Java 5.0 enums. * * @author Inderjeet Singh * @author Joel Leitch */ public class EnumTest extends TestCase { private Gson gson; @Override protected void setUp() throws Exception { super.setUp(); gson = new Gson(); } public void testTopLevelEnumSerialization() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testTopLevelEnumSerialization"); String result = gson.toJson(MyEnum.VALUE1); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1470,(('\"' + (com.google.gson.functional.EnumTest.MyEnum.VALUE1.toString())) + '\"')); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1471,result); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testTopLevelEnumDeserialization() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testTopLevelEnumDeserialization"); MyEnum result = gson.fromJson((('\"' + (MyEnum.VALUE1.toString())) + '\"'), MyEnum.class); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1468,com.google.gson.functional.EnumTest.MyEnum.VALUE1); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1469,result); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_add1117() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_add1117"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_add1118() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_add1118"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_add1119() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_add1119"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE2); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testCollectionOfEnumsSerialization() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE2); String expectedJson = "foo"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_remove934() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_remove934"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE1); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_remove935() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_remove935"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsSerialization_remove936() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsSerialization_remove936"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); Collection<MyEnum> target = new ArrayList<MyEnum>(); target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1428,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1429,actualJson); actualJson = gson.toJson(target, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1430,expectedJson); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1431,actualJson); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_add1114() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_add1114"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_add1115() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_add1115"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_add1116() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_add1116"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testCollectionOfEnumsDeserialization() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "foo"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_remove931() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_remove931"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE1); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_remove932() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_remove932"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testCollectionOfEnumsDeserialization_remove933() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testCollectionOfEnumsDeserialization_remove933"); Type type = new TypeToken<java.util.Collection<MyEnum>>() { }.getType(); String json = "[\"VALUE1\",\"VALUE2\"]"; Collection<MyEnum> target = gson.fromJson(json, type); com.google.gson.common.MoreAsserts.assertContains(target, MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testClassWithEnumFieldSerialization() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testClassWithEnumFieldSerialization"); ClassWithEnumFields target = new ClassWithEnumFields(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1425,target,1424,target.getExpectedJson()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1427,gson,1426,gson.toJson(target)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testClassWithEnumFieldDeserialization() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testClassWithEnumFieldDeserialization"); String json = "foo"; ClassWithEnumFields target = gson.fromJson(json, ClassWithEnumFields.class); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1420,com.google.gson.functional.EnumTest.MyEnum.VALUE1); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1421,target.value1); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1422,com.google.gson.functional.EnumTest.MyEnum.VALUE2); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1423,target.value2); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } private static enum MyEnum { VALUE1, VALUE2; } private static class ClassWithEnumFields { private final MyEnum value1 = MyEnum.VALUE1; private final MyEnum value2 = MyEnum.VALUE2; public String getExpectedJson() { return ((("{\"value1\":\"" + (value1)) + "\",\"value2\":\"") + (value2)) + "\"}"; } } /** * Test for issue 226. */ @Test(timeout = 1000) public void testEnumSubclass() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclass"); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1456,((com.google.gson.functional.EnumTest.Roshambo.class) == (com.google.gson.functional.EnumTest.Roshambo.ROCK.getClass()))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1458,gson,1457,gson.toJson(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1460,gson,1459,gson.toJson(java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1461,com.google.gson.functional.EnumTest.Roshambo.ROCK); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1463,gson,1462,gson.fromJson("\"ROCK\"", com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1465,null,1464,java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1467,gson,1466,gson.fromJson("[\"ROCK\",\"PAPER\",\"SCISSORS\"]", new com.google.gson.reflect.TypeToken<java.util.Set<com.google.gson.functional.EnumTest.Roshambo>>() {}.getType())); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test for issue 226. */ @Test(timeout = 1000) public void testEnumSubclass_remove938() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclass_remove938"); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1456,((com.google.gson.functional.EnumTest.Roshambo.class) == (com.google.gson.functional.EnumTest.Roshambo.ROCK.getClass()))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1458,gson,1457,gson.toJson(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1460,gson,1459,gson.toJson(java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1461,com.google.gson.functional.EnumTest.Roshambo.ROCK); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1463,gson,1462,gson.fromJson("\"ROCK\"", com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1465,null,1464,java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1467,gson,1466,gson.fromJson("[\"ROCK\",\"PAPER\",\"SCISSORS\"]", new com.google.gson.reflect.TypeToken<java.util.Set<com.google.gson.functional.EnumTest.Roshambo>>() {}.getType())); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassWithRegisteredTypeAdapter() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassWithRegisteredTypeAdapter"); gson = new GsonBuilder().registerTypeHierarchyAdapter(Roshambo.class, new MyEnumTypeAdapter()).create(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1444,((com.google.gson.functional.EnumTest.Roshambo.class) == (com.google.gson.functional.EnumTest.Roshambo.ROCK.getClass()))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1446,gson,1445,gson.toJson(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1448,gson,1447,gson.toJson(java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1449,com.google.gson.functional.EnumTest.Roshambo.ROCK); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1451,gson,1450,gson.fromJson("\"123ROCK\"", com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1453,null,1452,java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1455,gson,1454,gson.fromJson("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", new com.google.gson.reflect.TypeToken<java.util.Set<com.google.gson.functional.EnumTest.Roshambo>>() {}.getType())); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassWithRegisteredTypeAdapter_remove944() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassWithRegisteredTypeAdapter_remove944"); gson = new GsonBuilder().registerTypeHierarchyAdapter(Roshambo.class, new MyEnumTypeAdapter()).create(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1444,((com.google.gson.functional.EnumTest.Roshambo.class) == (com.google.gson.functional.EnumTest.Roshambo.ROCK.getClass()))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1446,gson,1445,gson.toJson(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1448,gson,1447,gson.toJson(java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1449,com.google.gson.functional.EnumTest.Roshambo.ROCK); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1451,gson,1450,gson.fromJson("\"123ROCK\"", com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1453,null,1452,java.util.EnumSet.allOf(com.google.gson.functional.EnumTest.Roshambo.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1455,gson,1454,gson.fromJson("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", new com.google.gson.reflect.TypeToken<java.util.Set<com.google.gson.functional.EnumTest.Roshambo>>() {}.getType())); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_add1123() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_add1123"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_add1124() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_add1124"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_add1125() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_add1125"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_add1126() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_add1126"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_remove939() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_remove939"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_remove940() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_remove940"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_remove941() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_remove941"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_remove942() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_remove942"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSubclassAsParameterizedType_remove943() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSubclassAsParameterizedType_remove943"); Collection<Roshambo> list = new ArrayList<Roshambo>(); list.add(Roshambo.ROCK); list.add(Roshambo.PAPER); String json = gson.toJson(list); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1443,json); Type collectionType = new TypeToken<java.util.Collection<Roshambo>>() { }.getType(); Collection<Roshambo> actualJsonList = gson.fromJson(json, collectionType); com.google.gson.common.MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testEnumCaseMapping() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumCaseMapping"); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1432,com.google.gson.functional.EnumTest.Gender.MALE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1434,gson,1433,gson.fromJson("\"boy\"", com.google.gson.functional.EnumTest.Gender.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1436,gson,1435,gson.toJson(com.google.gson.functional.EnumTest.Gender.MALE, com.google.gson.functional.EnumTest.Gender.class)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSet() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSet"); EnumSet<Roshambo> foo = EnumSet.of(Roshambo.ROCK, Roshambo.PAPER); String json = gson.toJson(foo); Type type = new TypeToken<java.util.EnumSet<Roshambo>>() { }.getType(); EnumSet<Roshambo> bar = gson.fromJson(json, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1438,bar,1437,bar.contains(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1440,bar,1439,bar.contains(com.google.gson.functional.EnumTest.Roshambo.PAPER)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1442,bar,1441,bar.contains(com.google.gson.functional.EnumTest.Roshambo.SCISSORS)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testEnumSet_remove937() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEnumSet_remove937"); EnumSet<Roshambo> foo = EnumSet.of(Roshambo.ROCK, Roshambo.PAPER); String json = gson.toJson(foo); Type type = new TypeToken<java.util.EnumSet<Roshambo>>() { }.getType(); EnumSet<Roshambo> bar = gson.fromJson(json, type); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1438,bar,1437,bar.contains(com.google.gson.functional.EnumTest.Roshambo.ROCK)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1440,bar,1439,bar.contains(com.google.gson.functional.EnumTest.Roshambo.PAPER)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1442,bar,1441,bar.contains(com.google.gson.functional.EnumTest.Roshambo.SCISSORS)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public enum Roshambo { ROCK { @Override Roshambo defeats() { return Roshambo.SCISSORS; } }, PAPER { @Override Roshambo defeats() { return Roshambo.ROCK; } }, SCISSORS { @Override Roshambo defeats() { return Roshambo.PAPER; } }; abstract Roshambo defeats(); } private static class MyEnumTypeAdapter implements JsonDeserializer<Roshambo> , JsonSerializer<Roshambo> { public JsonElement serialize(Roshambo src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(("123" + (src.name()))); } public Roshambo deserialize(JsonElement json, Type classOfT, JsonDeserializationContext context) throws JsonParseException { return Roshambo.valueOf(json.getAsString().substring(3)); } } public enum Gender { MALE, FEMALE; } }