public void DeserializeThrowsWhenBufferIsWrongSize(long badSize) { Int64Serializer serializer = new Int64Serializer(); Assert.ThrowsException <ArgumentException>(() => { serializer.Deserialize(new byte[badSize]); }); }
public void DeserializeThrowsWhenBufferIsNull() { Int64Serializer serializer = new Int64Serializer(); Assert.ThrowsException <ArgumentNullException>(() => { serializer.Deserialize(null); }); }
public void SerializeAndDeserializeToTheSameObject(long originalValue) { Serializer <long> serializer = new Int64Serializer(); byte[] serializedValue = serializer.Serialize(originalValue); long deserializedValue = serializer.Deserialize(serializedValue); Assert.Equal(originalValue, deserializedValue); }
public void SerializeThenDeserializeWorks(bool littleEndian) { long[] numbers = new long[] { long.MinValue, long.MinValue + 1, long.MinValue + 2, long.MinValue + 3, long.MinValue / 2, -65537, -65536, -65535, -65534, -257, -256, -255, -254 - 126, -127, -128 - 5, -4, -3, -2, -1, 0, long.MaxValue, long.MaxValue - 1, long.MaxValue - 2, long.MaxValue - 3, long.MaxValue / 2, 65537, 65536, 65535, 65534, 257, 256, 255, 254, 126, 127, 128, 5, 4, 3, 2, 1, }; Int64Serializer serializer = new Int64Serializer(littleEndian); for (long i = 0; i < numbers.Length; i++) { byte[] buffer = new byte[serializer.DataSize]; serializer.Serialize(numbers[i], buffer); Assert.AreEqual(numbers[i], serializer.Deserialize(buffer)); } }
public override DateTime Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) { var bsonReader = context.Reader; var currentBsonType = bsonReader.GetCurrentBsonType(); DateTime value; switch (currentBsonType) { case BsonType.Document: value = new DateTime(); _helper.DeserializeMembers(context, (elementName, flag) => { if (flag != DATE_TIME_FLAG) { if (flag != TICKS_FLAG) { return; } value = new DateTime(_int64Serializer.Deserialize(context), DateTimeKind.Utc); } else { bsonReader.SkipValue(); } }); break; default: throw CreateCannotDeserializeFromBsonTypeException(currentBsonType); } switch (Kind) { case DateTimeKind.Local: value = DateTime.SpecifyKind(BsonUtils.ToLocalTime(value), DateTimeKind.Local); break; case DateTimeKind.Unspecified: value = DateTime.SpecifyKind(value, DateTimeKind.Unspecified); break; case DateTimeKind.Utc: value = BsonUtils.ToUniversalTime(value); break; default: throw CreateCannotDeserializeFromBsonTypeException(currentBsonType); } return(value); }
public void ShouldThrowIfDeserializingLessThanEightBytes(byte[] data) { Serializer <long> serializer = new Int64Serializer(); Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Deserialize(data)); }
public void ShouldThrowIfDeserializingNull() { Serializer <long> serializer = new Int64Serializer(); Assert.Throws <ArgumentNullException>(() => serializer.Deserialize(null)); }