package com.google.gson; import java.io.IOException; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import junit.framework.TestCase; /** * @author Jesse Wilson */ public class OverrideCoreTypeAdaptersTest extends TestCase { private static final TypeAdapter<java.lang.Boolean> booleanAsIntAdapter = new TypeAdapter<java.lang.Boolean>() { @Override public void write(JsonWriter out, Boolean value) throws IOException { out.value((value ? 1 : 0)); } @Override public Boolean read(JsonReader in) throws IOException { int value = in.nextInt(); return value != 0; } }; private static final TypeAdapter<java.lang.String> swapCaseStringAdapter = new TypeAdapter<java.lang.String>() { @Override public void write(JsonWriter out, String value) throws IOException { out.value(value.toUpperCase(java.util.Locale.US)); } @Override public String read(JsonReader in) throws IOException { return in.nextString().toLowerCase(java.util.Locale.US); } }; public void testOverrideWrapperBooleanAdapter() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testOverrideWrapperBooleanAdapter"); Gson gson = new GsonBuilder().registerTypeAdapter(Boolean.class, booleanAsIntAdapter).create(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3207,gson,3206,gson.toJson(true, boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3209,gson,3208,gson.toJson(true, java.lang.Boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3210,java.lang.Boolean.TRUE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3212,gson,3211,gson.fromJson("true", boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3213,java.lang.Boolean.TRUE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3215,gson,3214,gson.fromJson("1", java.lang.Boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3216,java.lang.Boolean.FALSE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3218,gson,3217,gson.fromJson("0", java.lang.Boolean.class)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testOverridePrimitiveBooleanAdapter() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testOverridePrimitiveBooleanAdapter"); Gson gson = new GsonBuilder().registerTypeAdapter(boolean.class, booleanAsIntAdapter).create(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3191,gson,3190,gson.toJson(true, boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3193,gson,3192,gson.toJson(true, java.lang.Boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3194,java.lang.Boolean.TRUE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3196,gson,3195,gson.fromJson("1", boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3197,java.lang.Boolean.TRUE); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3199,gson,3198,gson.fromJson("true", java.lang.Boolean.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3201,gson,3200,gson.toJson(false, boolean.class)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } public void testOverrideStringAdapter() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testOverrideStringAdapter"); Gson gson = new GsonBuilder().registerTypeAdapter(String.class, swapCaseStringAdapter).create(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3203,gson,3202,gson.toJson("Hello", java.lang.String.class)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),3205,gson,3204,gson.fromJson("\"Hello\"", java.lang.String.class)); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } }