public void ByteArraysCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Byte Array Data", typeof(byte[])); baseTable.Rows.Add(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); baseTable.Rows.Add(new byte[] { byte.MaxValue, byte.MinValue }); baseTable.Rows.Add(new byte[] { 55, 42, 12, 89, 77, 66, 127 }); baseTable.Rows.Add(new byte[] { 22, 21, 23, 20, 19, 18, 17, 16 }); baseTable.Rows.Add(new byte[0]); baseTable.Rows.Add(new byte[6]); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void AllDataTypesAtOnce() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("String Data", typeof(string)); baseTable.Columns.Add("Int Data", typeof(int)); baseTable.Columns.Add("Byte Array Data", typeof(byte[])); baseTable.Columns.Add("Date Time", typeof(byte[])); baseTable.Rows.Add("Code 1", 1, new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); baseTable.Rows.Add("Code 2", 2, new byte[] { 100, 100, 60, 70, 90 }); baseTable.Rows.Add("Code 3", 3, new byte[] { 55, 42, 12, 89, 77, 66, 127 }); baseTable.Rows.Add("Code 4", 4, new byte[] { 22, 21, 23, 20, 19, 18, 17, 16 }); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void BoolCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Boolean Data", typeof(bool)); baseTable.Rows.Add(true); baseTable.Rows.Add(false); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void StringCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("String Data", typeof(string)); baseTable.Rows.Add("This is a string"); baseTable.Rows.Add(String.Empty); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void NullCanBeDeserialized() { var converter = new CompactDataTableConverter(); var deserializedTable = (DataTable)JsonConvert.DeserializeObject("null", typeof(DataTable), converter); Assert.IsNull(deserializedTable); }
public void Int64CanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Int64 Data", typeof(long)); baseTable.Rows.Add(100001); baseTable.Rows.Add(0); baseTable.Rows.Add(long.MaxValue); baseTable.Rows.Add(long.MinValue); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void FloatCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Float Data", typeof(float)); baseTable.Rows.Add(100001.333333); baseTable.Rows.Add(0); baseTable.Rows.Add(float.MinValue); baseTable.Rows.Add(float.MaxValue); baseTable.Rows.Add(float.Epsilon); baseTable.Rows.Add(float.NegativeInfinity); baseTable.Rows.Add(float.PositiveInfinity); baseTable.Rows.Add(float.NaN); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void EmptyTableCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("String Data", typeof(string)); baseTable.Columns.Add("Int Data", typeof(int)); baseTable.Columns.Add("Byte Array Data", typeof(byte[])); baseTable.Columns.Add("Date Time", typeof(byte[])); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void DecimalCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Decimal Data", typeof(Decimal)); baseTable.Rows.Add(133.899999m); baseTable.Rows.Add(0m); baseTable.Rows.Add(Decimal.MinValue); baseTable.Rows.Add(Decimal.MaxValue); baseTable.Rows.Add(Decimal.MinusOne); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }
public void DateTimeCanBeDeserialized() { var converter = new CompactDataTableConverter(); var baseTable = new DataTable(); baseTable.Columns.Add("Date Time Data", typeof(DateTime)); baseTable.Rows.Add(new DateTime(2013, 10, 15, 10, 30, 16, 133)); baseTable.Rows.Add(DateTime.MinValue); baseTable.Rows.Add(DateTime.MaxValue); baseTable.Rows.Add(DBNull.Value); string serializedTable = JsonConvert.SerializeObject(baseTable, converter); Trace.WriteLine(serializedTable); var deserializedTable = (DataTable)JsonConvert.DeserializeObject(serializedTable, typeof(DataTable), converter); AssertColumnsHaveSameDefinition(baseTable, deserializedTable); AssertRowsHaveSameData(baseTable, deserializedTable); }