package com.google.gson.functional; import java.util.ArrayList; import java.util.Collection; import com.google.gson.Gson; import java.util.HashMap; import com.google.gson.JsonObject; import java.util.Map; import org.junit.Test; import junit.framework.TestCase; /** * Tests for Gson serialization of a sub-class object while encountering a base-class type * * @author Inderjeet Singh */ @SuppressWarnings(value = "unused") public class MoreSpecificTypeSerializationTest extends TestCase { private Gson gson; @Override protected void setUp() throws Exception { super.setUp(); gson = new Gson(); } public void testSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSubclassFields"); ClassWithBaseFields target = new ClassWithBaseFields(new Sub(2 , 2)); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1915,json,1914,json.contains("\"b\":1")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1917,json,1916,json.contains("\"s\":2")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testSubclassFields_literalMutation1599() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSubclassFields_literalMutation1599"); ClassWithBaseFields target = new ClassWithBaseFields(new Sub(1 , 3)); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1915,json,1914,json.contains("\"b\":1")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1917,json,1916,json.contains("\"s\":2")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testListOfSubclassFields_add1300() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_add1300"); Collection<Base> list = new ArrayList<Base>(); list.add(new Base(1)); list.add(new Base(1)); list.add(new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testListOfSubclassFields_add1301() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_add1301"); Collection<Base> list = new ArrayList<Base>(); list.add(new Base(1)); list.add(new Sub(2 , 3)); list.add(new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testListOfSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields"); Collection<Base> list = new ArrayList<Base>(); list.add(new Base(0)); list.add(new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testListOfSubclassFields_literalMutation1577() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_literalMutation1577"); Collection<Base> list = new ArrayList<Base>(); list.add(new Base(1)); list.add(new Sub(1 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testListOfSubclassFields_literalMutation1578() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_literalMutation1578"); Collection<Base> list = new ArrayList<Base>(); list.add(new Base(1)); list.add(new Sub(2 , 2)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testListOfSubclassFields_remove1104() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_remove1104"); Collection<Base> list = new ArrayList<Base>(); list.add(new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testListOfSubclassFields_remove1105() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfSubclassFields_remove1105"); Collection<Base> list = new ArrayList<Base>(); list.add(new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1664,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1894,json,1893,json.contains("{\"b\":1}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1895,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1897,json,1896,json.contains("{\"s\":3,\"b\":2}")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testMapOfSubclassFields_add1304() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_add1304"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("base", new Base(1)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testMapOfSubclassFields_add1305() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_add1305"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("sub", new Sub(2 , 3)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("foo", new Base(1)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1589() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1589"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(2)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1590() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1590"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("foo", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1591() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1591"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("sub", new Sub(1 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1592() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1592"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("sub", new Sub(2 , 2)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1594() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1594"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("foo").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testMapOfSubclassFields_literalMutation1595() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_literalMutation1595"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("base", new Base(1)); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("foo").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testMapOfSubclassFields_remove1108() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_remove1108"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } @Test(timeout = 1000) public void testMapOfSubclassFields_remove1109() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfSubclassFields_remove1109"); Map<java.lang.String, Base> map = new HashMap<java.lang.String, Base>(); map.put("sub", new Sub(2 , 3)); ClassWithContainersOfBaseFields target = new ClassWithContainersOfBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1905,json.get("base").getAsJsonObject().get("b"),1904,json.get("base").getAsJsonObject().get("b").getAsInt()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1907,sub.get("b"),1906,sub.get("b").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1909,sub.get("s"),1908,sub.get("s").getAsInt()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type, Gson ignores the more-specific type and sticks to the declared type */ public void testParameterizedSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testParameterizedSubclassFields"); ClassWithParameterizedBaseFields target = new ClassWithParameterizedBaseFields(new ParameterizedSub<java.lang.String>("foo" , "two")); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1911,json,1910,json.contains("\"t\":\"one\"")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1913,json,1912,json.contains("\"s\"")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type, Gson ignores the more-specific type and sticks to the declared type */ public void testParameterizedSubclassFields_literalMutation1597() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testParameterizedSubclassFields_literalMutation1597"); ClassWithParameterizedBaseFields target = new ClassWithParameterizedBaseFields(new ParameterizedSub<java.lang.String>("one" , "foo")); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1911,json,1910,json.contains("\"t\":\"one\"")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1913,json,1912,json.contains("\"s\"")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ @Test(timeout = 1000) public void testListOfParameterizedSubclassFields_add1298() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_add1298"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedBase<java.lang.String>("one")); list.add(new ParameterizedBase<java.lang.String>("one")); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ @Test(timeout = 1000) public void testListOfParameterizedSubclassFields_add1299() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_add1299"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedBase<java.lang.String>("one")); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ public void testListOfParameterizedSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedBase<java.lang.String>("foo")); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ public void testListOfParameterizedSubclassFields_literalMutation1573() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_literalMutation1573"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedBase<java.lang.String>("one")); list.add(new ParameterizedSub<java.lang.String>("foo" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ public void testListOfParameterizedSubclassFields_literalMutation1574() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_literalMutation1574"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedBase<java.lang.String>("one")); list.add(new ParameterizedSub<java.lang.String>("two" , "foo")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ @Test(timeout = 1000) public void testListOfParameterizedSubclassFields_remove1102() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_remove1102"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a List, Gson ignores the more-specific type and sticks to * the declared type */ @Test(timeout = 1000) public void testListOfParameterizedSubclassFields_remove1103() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testListOfParameterizedSubclassFields_remove1103"); Collection<ParameterizedBase<java.lang.String>> list = new ArrayList<ParameterizedBase<java.lang.String>>(); list.add(new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(list , null); String json = gson.toJson(target); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1727,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1889,json,1888,json.contains("{\"t\":\"one\"}")); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1890,json); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1892,json,1891,json.contains("\"s\":")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ @Test(timeout = 1000) public void testMapOfParameterizedSubclassFields_add1302() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_add1302"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ @Test(timeout = 1000) public void testMapOfParameterizedSubclassFields_add1303() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_add1303"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("foo", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1581() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1581"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("foo")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1582() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1582"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("foo", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1583() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1583"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("foo" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1584() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1584"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "foo")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1586() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1586"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("foo").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ public void testMapOfParameterizedSubclassFields_literalMutation1587() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_literalMutation1587"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("base", new ParameterizedBase<java.lang.String>("one")); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("foo").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ @Test(timeout = 1000) public void testMapOfParameterizedSubclassFields_remove1106() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_remove1106"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * For parameterized type in a map, Gson ignores the more-specific type and sticks to the * declared type */ @Test(timeout = 1000) public void testMapOfParameterizedSubclassFields_remove1107() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapOfParameterizedSubclassFields_remove1107"); Map<java.lang.String, ParameterizedBase<java.lang.String>> map = new HashMap<java.lang.String, ParameterizedBase<java.lang.String>>(); map.put("sub", new ParameterizedSub<java.lang.String>("two" , "three")); ClassWithContainersOfParameterizedBaseFields target = new ClassWithContainersOfParameterizedBaseFields(null , map); JsonObject json = gson.toJsonTree(target).getAsJsonObject().get("map").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1899,json.get("base").getAsJsonObject().get("t"),1898,json.get("base").getAsJsonObject().get("t").getAsString()); JsonObject sub = json.get("sub").getAsJsonObject(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1901,sub.get("t"),1900,sub.get("t").getAsString()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),1903,sub,1902,sub.get("s")); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } private static class Base { int b; Base(int b) { this.b = b; } } private static class Sub extends Base { int s; Sub(int b ,int s) { super(b); this.s = s; } } private static class ClassWithBaseFields { Base b; ClassWithBaseFields(Base b) { this.b = b; } } private static class ClassWithContainersOfBaseFields { Collection<Base> collection; Map<java.lang.String, Base> map; ClassWithContainersOfBaseFields(Collection<Base> collection ,Map<java.lang.String, Base> map) { this.collection = collection; this.map = map; } } private static class ParameterizedBase<T> { T t; ParameterizedBase(T t) { this.t = t; } } private static class ParameterizedSub<T> extends ParameterizedBase<T> { T s; ParameterizedSub(T t ,T s) { super(t); this.s = s; } } private static class ClassWithParameterizedBaseFields { ParameterizedBase<java.lang.String> b; ClassWithParameterizedBaseFields(ParameterizedBase<java.lang.String> b) { this.b = b; } } private static class ClassWithContainersOfParameterizedBaseFields { Collection<ParameterizedBase<java.lang.String>> collection; Map<java.lang.String, ParameterizedBase<java.lang.String>> map; ClassWithContainersOfParameterizedBaseFields(Collection<ParameterizedBase<java.lang.String>> collection ,Map<java.lang.String, ParameterizedBase<java.lang.String>> map) { this.collection = collection; this.map = map; } } }