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}"); } }
public void TestSerializeAttribute() { var value = new CheckAttribute(); value.A = Rand.Default.RandInt(); value.a = Rand.Default.RandInt(); value.Setb(Rand.Default.RandInt()); value.C = Rand.Default.RandInt(); value.c = Rand.Default.RandInt(); var writer = new ByteBufferWriter(BufferSerializer.Capacity(value)); value.BufferWrite(writer); var valueSerialized = BufferSerializer.Read <CheckAttribute>(writer.GetBufferReader()); Assert.AreNotEqual(value.A, valueSerialized.A, $"check serialize skip failed, value A: {value.A}, serialized value A: {valueSerialized.A}"); Assert.AreNotEqual(value.a, valueSerialized.a, $"check serialize skip failed, value a: {value.a}, serialized value a: {valueSerialized.a}"); Assert.AreEqual(value.Getb(), valueSerialized.Getb(), $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueSerialized.Getb()}"); Assert.AreEqual(value.C, valueSerialized.C, $"check serialize read failed, value C: {value.C}, serialized value C: {valueSerialized.C}"); Assert.AreEqual(value.c, valueSerialized.c, $"check serialize read failed, value c: {value.c}, serialized value c: {valueSerialized.c}"); valueSerialized = BufferSerializer.Merge <CheckAttribute>(writer.GetBufferReader(), default(CheckAttribute)); Assert.AreNotEqual(value.A, valueSerialized.A, $"check serialize skip failed, value A: {value.A}, serialized value A: {valueSerialized.A}"); Assert.AreNotEqual(value.a, valueSerialized.a, $"check serialize skip failed, value a: {value.a}, serialized value a: {valueSerialized.a}"); Assert.AreEqual(value.Getb(), valueSerialized.Getb(), $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueSerialized.Getb()}"); Assert.AreEqual(value.C, valueSerialized.C, $"check serialize read failed, value C: {value.C}, serialized value C: {valueSerialized.C}"); Assert.AreEqual(value.c, valueSerialized.c, $"check serialize read failed, value c: {value.c}, serialized value c: {valueSerialized.c}"); var valueAs = BufferSerializer.Read <CheckAttributeAs>(writer.GetBufferReader()); Assert.AreEqual(value.C, valueAs.A, $"check serialize As failed, value A: {value.C}, serialized value A: {valueAs.A}"); Assert.AreEqual(value.c, valueAs.a, $"check serialize As failed, value a: {value.c}, serialized value a: {valueAs.a}"); Assert.AreEqual(value.Getb(), valueAs.b, $"check serialize failed, value b: {value.Getb()}, serialized value b: {valueAs.b}"); }
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]}"); } }