public void Should_Allow_Custom_Udt_Serializers() { var typeSerializer = new UdtSerializerWrapper(); var serializer = new Serializer(4, new ITypeSerializer[] { typeSerializer }); var buffer = serializer.Serialize(new object()); CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("DUMMY UDT SERIALIZED"), buffer); CollectionAssert.AreEqual(buffer, (IEnumerable)serializer.Deserialize(buffer, ColumnTypeCode.Udt, new UdtColumnInfo("ks1.udt1"))); //Check that other serializers are still working CollectionAssert.AreEqual(new byte[] { 0, 0, 0, 10 }, serializer.Serialize(10)); CollectionAssert.AreEqual(new byte[] { 0x61, 0x62 }, serializer.Serialize("ab")); Assert.AreEqual(1, typeSerializer.DeserializationCounter); Assert.AreEqual(1, typeSerializer.SerializationCounter); }
public void Should_Allow_Custom_Cql_Type_Serializers() { var typeSerializer = new DummyCustomTypeSerializer(); var serializer = new Serializer(4, new ITypeSerializer[] { typeSerializer }); var value = new DummyCustomType(new byte[] { 1, 2 }); var buffer = serializer.Serialize(value); CollectionAssert.AreEqual(new byte[] { 1, 2 }, buffer); var deserializedValue = serializer.Deserialize(buffer, ColumnTypeCode.Custom, typeSerializer.TypeInfo); Assert.IsInstanceOf<DummyCustomType>(deserializedValue); var deserializedCustom = (DummyCustomType)deserializedValue; CollectionAssert.AreEqual(value.Buffer, deserializedCustom.Buffer); //Check that other serializers are still working CollectionAssert.AreEqual(new byte[] { 0, 0, 0, 10 }, serializer.Serialize(10)); CollectionAssert.AreEqual(new byte[] { 0x61 }, serializer.Serialize("a")); }
public void Should_Allow_Custom_Primitive_Serializers() { var serializer = new Serializer(4, new [] {new BigDecimalSerializer()}); var value = new BigDecimal(5, 1); var buffer = serializer.Serialize(value); CollectionAssert.AreEqual(new byte[] { 0, 0, 0, 5, 1 }, buffer); var deserializedValue = serializer.Deserialize(buffer, ColumnTypeCode.Decimal, null); Assert.IsInstanceOf<BigDecimal>(deserializedValue); var deserializedDecimal = (BigDecimal) deserializedValue; Assert.AreEqual("0.00001", deserializedDecimal.ToString()); Assert.AreEqual(value.Scale, deserializedDecimal.Scale); Assert.AreEqual(value.UnscaledValue, deserializedDecimal.UnscaledValue); //Check that other serializers are still working CollectionAssert.AreEqual(new byte[] { 0, 0, 0, 10 }, serializer.Serialize(10)); CollectionAssert.AreEqual(new byte[] { 0x61 }, serializer.Serialize("a")); }