Exemplo n.º 1
0
        public void constructor_with_representation_should_return_expected_result(
            [Values(BsonType.Array, BsonType.DateTime, BsonType.Document, BsonType.String)] BsonType representation)
        {
            var subject = new DateTimeOffsetSerializer(representation);

            subject.Representation.Should().Be(representation);
        }
        public void SerializeAndDeserializeToTheSameObject(DateTimeOffset originalValue)
        {
            Serializer <DateTimeOffset> serializer = new DateTimeOffsetSerializer();

            byte[]         serializedValue   = serializer.Serialize(originalValue);
            DateTimeOffset deserializedValue = serializer.Deserialize(serializedValue);

            Assert.Equal(originalValue, deserializedValue);
        }
Exemplo n.º 3
0
        public void StatisticalDateTimeOffset_RoundTripsCorrectly(string reason, StatisticalDateTimeOffset statisticalDateTimeOffset, string expectedJsonText)
        {
            var actualDateTimeOffset = DateTimeOffsetSerializer.DeserializeFromJsonLikeFormat(expectedJsonText);

            actualDateTimeOffset.ShouldBeEquivalentTo(statisticalDateTimeOffset, reason);

            var actualJsonText = DateTimeOffsetSerializer.SerializeToJsonLikeFormat(statisticalDateTimeOffset);

            actualJsonText.ShouldBeEquivalentTo(expectedJsonText, reason);
        }
Exemplo n.º 4
0
        public void WithRepresentation_should_return_expected_result(
            [Values(BsonType.Array, BsonType.DateTime, BsonType.Document, BsonType.String)] BsonType oldRepresentation,
            [Values(BsonType.Array, BsonType.DateTime, BsonType.Document, BsonType.String)] BsonType newRepresentation)
        {
            var subject = new DateTimeOffsetSerializer(oldRepresentation);

            var result = subject.WithRepresentation(newRepresentation);

            result.Representation.Should().Be(newRepresentation);
            if (newRepresentation == oldRepresentation)
            {
                result.Should().BeSameAs(subject);
            }
        }
Exemplo n.º 5
0
        public void Deserialize_should_return_expected_result(string json, string expectedResult)
        {
            var x       = DateTimeOffset.Parse(expectedResult);
            var m       = BsonUtils.ToMillisecondsSinceEpoch(x.UtcDateTime);
            var subject = new DateTimeOffsetSerializer();

            DateTimeOffset result;

            using (var reader = new JsonReader(json))
            {
                reader.ReadStartDocument();
                reader.ReadName("x");
                var context = BsonDeserializationContext.CreateRoot(reader);
                result = subject.Deserialize(context);
                reader.ReadEndDocument();
            }

            result.Should().Be(DateTimeOffset.Parse(expectedResult));
        }
Exemplo n.º 6
0
 public WKTSerializers(ISerializerStorage serializerStorage, IValueTypeObjectsDictionary objectCache)
 {
     Boolean        = new BooleanSerializer(serializerStorage);
     Byte           = new ByteSerializer(serializerStorage);
     Char           = new CharSerializer(serializerStorage);
     DateTime       = new DateTimeSerializer(serializerStorage);
     DateTimeOffset = new DateTimeOffsetSerializer(serializerStorage);
     Decimal        = new DecimalSerializer(serializerStorage);
     Double         = new DoubleSerializer(serializerStorage);
     Guid           = new GuidSerializer(serializerStorage);
     Int16          = new Int16Serializer(serializerStorage);
     Int32          = new Int32Serializer(serializerStorage);
     Int64          = new Int64Serializer(serializerStorage);
     Object         = new ObjectSerializer(serializerStorage);
     SByte          = new SByteSerializer(serializerStorage);
     Single         = new SingleSerializer(serializerStorage);
     String         = new StringSerializer(serializerStorage, objectCache);
     TimeSpan       = new TimeSpanSerializer(serializerStorage);
     UInt16         = new UInt16Serializer(serializerStorage);
     UInt32         = new UInt32Serializer(serializerStorage);
 }
Exemplo n.º 7
0
        public void Serialize_should_have_expected_result(BsonType representation, string valueString, string expectedResult)
        {
            var subject = new DateTimeOffsetSerializer(representation);
            var value   = DateTimeOffset.Parse(valueString);

            string result;

            using (var textWriter = new StringWriter())
                using (var writer = new JsonWriter(textWriter, new JsonWriterSettings {
                    OutputMode = JsonOutputMode.CanonicalExtendedJson
                }))
                {
                    var context = BsonSerializationContext.CreateRoot(writer);
                    writer.WriteStartDocument();
                    writer.WriteName("x");
                    subject.Serialize(context, value);
                    writer.WriteEndDocument();
                    result = textWriter.ToString();
                }

            result.Should().Be(expectedResult);
        }
Exemplo n.º 8
0
        public void constructor_with_no_arguments_should_return_expected_result()
        {
            var subject = new DateTimeOffsetSerializer();

            subject.Representation.Should().Be(BsonType.Array);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TimestampSerializer"/> class.
 /// </summary>
 public TimestampSerializer()
 {
     _serializer = new DateTimeOffsetSerializer(BsonType.String);
 }
        public void ShouldThrowIfDeserializingLessThanSixteenBytes(byte[] data)
        {
            Serializer <DateTimeOffset> serializer = new DateTimeOffsetSerializer();

            Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Deserialize(data));
        }
        public void ShouldThrowIfDeserializingNull()
        {
            Serializer <DateTimeOffset> serializer = new DateTimeOffsetSerializer();

            Assert.Throws <ArgumentNullException>(() => serializer.Deserialize(null));
        }
Exemplo n.º 12
0
 public DateTimeOffsetSerializerCustom(Type valueType, DateTimeOffsetSerializer serializer)
 {
     ValueType   = valueType;
     _serializer = serializer;
 }