package ser;
import com.cedarsoftware.util.DeepEquals;
import org.junit.Test;
import org.nustaq.serialization.FSTConfiguration;
import static org.junit.Assert.assertTrue;
/**
* Created by ruedi on 23.05.2015.
*/
public class BasicJsonTest extends BasicFSTTest {
@Override
protected FSTConfiguration getTestConfiguration() {
FSTConfiguration.isAndroid = false;
return FSTConfiguration.createJsonConfiguration(false,true);
}
@Test
public void testVersioning() {
// versioning not supported with json
}
@Test @Override
public void testBigNums() throws Exception {
BigNums obj = new BigNums();
out.writeObject(obj);
in.resetForReuseUseArray(out.getCopyOfWrittenBuffer());
out.flush();
BigNums res = (BigNums) in.readObject();
//assertTrue(DeepEquals.deepEquals(obj, res)); Json inherently cannot differ e.g. Long(1) vs Integer(1).
assertTrue(res.ugly[2][0]);
assertTrue(res._aDouble2a[0] == -88.0);
assertTrue(res._aChar2a[1] == Character.MAX_VALUE);
}
@Test @Override // again BigNum type failures unavoidable for Json
public void testPrimitiveArray() throws Exception {
PrimitiveArray obj = new PrimitiveArray();
out.writeObject(obj);
in.resetForReuseUseArray(lastBinary = out.getCopyOfWrittenBuffer());
out.flush();
PrimitiveArray res = (PrimitiveArray) in.readObject();
assertTrue(res.aLong0 == res.aRef);
assertTrue(res.aRef1 == res.mix[1]);
assertTrue(DeepEquals.deepEquals(obj.aBoolean,res.aBoolean));
assertTrue(DeepEquals.deepEquals(obj.aByte,res.aByte));
assertTrue(DeepEquals.deepEquals(obj.aShort0,res.aShort0));
assertTrue(DeepEquals.deepEquals(obj.aChar0,res.aChar0));
assertTrue(DeepEquals.deepEquals(obj.aInt0,res.aInt0));
assertTrue(DeepEquals.deepEquals(obj.aInt1,res.aInt1));
assertTrue(DeepEquals.deepEquals(obj.aLong0,res.aLong0));
assertTrue(DeepEquals.deepEquals(obj.aFloat0,res.aFloat0));
assertTrue(DeepEquals.deepEquals(obj.aDouble,res.aDouble));
assertTrue(DeepEquals.deepEquals(obj.aRef,res.aRef));
assertTrue(DeepEquals.deepEquals(obj._aBoolean,res._aBoolean));
assertTrue(DeepEquals.deepEquals(obj._aByte,res._aByte));
assertTrue(DeepEquals.deepEquals(obj._aShort0,res._aShort0));
assertTrue(DeepEquals.deepEquals(obj._aChar0,res._aChar0));
assertTrue(DeepEquals.deepEquals(obj._aInt0,res._aInt0));
assertTrue(DeepEquals.deepEquals(obj._aInt1,res._aInt1));
assertTrue(DeepEquals.deepEquals(obj._aLong0,res._aLong0));
assertTrue(DeepEquals.deepEquals(obj._aFloat0,res._aFloat0));
assertTrue(DeepEquals.deepEquals(obj._aDouble,res._aDouble));
}
}