private void checkSerializeCollection <T, CollectionType>(CollectionType value) where CollectionType : ICollection <T> { var writer = new ByteBufferWriter(BufferSerializer.Capacity(value)); value.BufferWrite(writer); CollectionType valueSerialized = BufferSerializer.Read <CollectionType>(writer.GetBufferReader()); foreach (var i in value) { Assert.IsTrue(valueSerialized.Contains(i), $"check serialize read failed, value: {i}"); } valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(CollectionType)); foreach (var i in value) { Assert.IsTrue(valueSerialized.Contains(i), $"check serialize merge failed, value: {i}"); } writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (CollectionType)BufferSerializer.Read <object>(writer.GetBufferReader()); foreach (var i in value) { Assert.IsTrue(valueSerialized.Contains(i), $"check serialize object read failed, value: {i}"); } writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (CollectionType)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(CollectionType)); foreach (var i in value) { Assert.IsTrue(valueSerialized.Contains(i), $"check serialize object merge failed, value: {i}"); } }
private void checkSerializeArray <T>(T[] value) { var writer = new ByteBufferWriter(BufferSerializer.Capacity(value)); value.BufferWrite(writer); var valueSerialized = BufferSerializer.Read <T[]>(writer.GetBufferReader()); for (int i = 0; i < value.Length; i++) { Assert.AreEqual(value[i], valueSerialized[i], $"check serialize read failed, value: {value[i]}, serialized value: {valueSerialized[i]}"); } valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(T[])); for (int i = 0; i < value.Length; i++) { Assert.AreEqual(value[i], valueSerialized[i], $"check serialize merge failed, value: {value[i]}, serialized value: {valueSerialized[i]}"); } writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (T[])BufferSerializer.Read <object>(writer.GetBufferReader()); for (int i = 0; i < value.Length; i++) { Assert.AreEqual(value[i], valueSerialized[i], $"check serialize object read failed, value: {value[i]}, serialized value: {valueSerialized[i]}"); } writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (T[])BufferSerializer.Merge <object>(writer.GetBufferReader(), default(T[])); for (int i = 0; i < value.Length; i++) { Assert.AreEqual(value[i], valueSerialized[i], $"check serialize object merge failed, value: {value[i]}, serialized value: {valueSerialized[i]}"); } }
private void checkSerializeGenericMul <T>(dynamic value) { var writer = new ByteBufferWriter(BufferSerializer.Capacity <T>(value)); BufferSerializer.Write <T>(writer, value); dynamic valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader()); checkClassValue(value.ClassGeneric, valueSerialized.ClassGeneric); valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T)); checkClassValue(value.ClassGeneric, valueSerialized.ClassGeneric); }
private void checkSerializeInterface <T>(dynamic value) { var writer = new ByteBufferWriter(BufferSerializer.Capacity <T>(value)); BufferSerializer.Write <T>(writer, value); dynamic valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader()); checkInterfaceValue(value, valueSerialized); valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T)); checkInterfaceValue(value, valueSerialized); }
private void checkSerializeValue <T>(T value) { var writer = new ByteBufferWriter(BufferSerializer.Capacity(value)); value.BufferWrite(writer); T valueSerialized = BufferSerializer.Read <T>(writer.GetBufferReader()); Assert.AreEqual(value, valueSerialized, $"check serialize read failed, value: {value}, serialized value: {valueSerialized}"); valueSerialized = BufferSerializer.Merge <T>(writer.GetBufferReader(), default(T)); Assert.AreEqual(value, valueSerialized, $"check serialize merge failed, value: {value}, serialized value: {valueSerialized}"); writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (T)BufferSerializer.Read <object>(writer.GetBufferReader()); Assert.AreEqual(value, valueSerialized, $"check serialize object read failed, value: {value}, serialized value: {valueSerialized}"); writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (T)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(T)); Assert.AreEqual(value, valueSerialized, $"check serialize object merge failed, value: {value}, serialized value: {valueSerialized}"); }
private void checkSerializeDictionary <Key, Value, DictionaryType>(DictionaryType value) where DictionaryType : IDictionary <Key, Value> { var writer = new ByteBufferWriter(BufferSerializer.Capacity(value)); value.BufferWrite(writer); DictionaryType valueSerialized = BufferSerializer.Read <DictionaryType>(writer.GetBufferReader()); foreach (var i in value) { Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize read failed, key: {i.Key}"); Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize read failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}"); } valueSerialized = BufferSerializer.Merge(writer.GetBufferReader(), default(DictionaryType)); foreach (var i in value) { Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize merge failed, key: {i.Key}"); Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize merge failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}"); } writer = new ByteBufferWriter(BufferSerializer.Capacity <object>(value)); BufferSerializer.Write <object>(writer, value); valueSerialized = (DictionaryType)BufferSerializer.Read <object>(writer.GetBufferReader()); foreach (var i in value) { Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize object read failed, key: {i.Key}"); Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize object read failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}"); } BufferSerializer.Write <object>(writer, value); valueSerialized = (DictionaryType)BufferSerializer.Merge <object>(writer.GetBufferReader(), default(DictionaryType)); foreach (var i in value) { Assert.IsTrue(valueSerialized.ContainsKey(i.Key), $"check serialize object merge failed, key: {i.Key}"); Assert.AreEqual(value[i.Key], valueSerialized[i.Key], $"check serialize object merge failed, value: {value[i.Key]}, serialized value: {valueSerialized[i.Key]}"); } }