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_Cql_Type_Serializers()
        {
            var typeSerializer = new DummyCustomTypeSerializer();
            var serializer     = new Serializer(ProtocolVersion.MaxSupported, 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"));
        }