Exemple #1
0
        public void ShouldSerialize()
        {
            // Given

            var date1 = DateTime.Today.AddDays(1);
            var date2 = DateTime.Today.AddDays(2);
            var date3 = DateTime.Today.AddDays(3);

            var serializer = new JsonObjectSerializer(false, converters: new[] { new XmlDateMemberValueConverter() });

            var instance = new XmlDateClass
            {
                DateProperty         = date1,
                NullableDateProperty = date2,
                ComplexProperty      = new XmlDateClass
                {
                    DateProperty = date3
                }
            };

            var expectedJson = @"{" +
                               "\"DateProperty\":" + ((Date)date1).UnixTime + "," +
                               "\"NullableDateProperty\":" + ((Date)date2).UnixTime + "," +
                               "\"ComplexProperty\":{" +
                               "\"DateProperty\":" + ((Date)date3).UnixTime +
                               "}" +
                               "}";

            // When

            var actualJson = serializer.ConvertToString(instance);

            // Then
            Assert.AreEqual(expectedJson, actualJson);
        }
Exemple #2
0
        public void ShouldSaveClassWithXmlDate()
        {
            // Given

            var date1 = DateTime.Today.AddDays(1);
            var date2 = DateTime.Today.AddDays(2);
            var date3 = DateTime.Today.AddDays(3);

            var instance = new XmlDateClass
            {
                _id                  = 1,
                DateProperty         = date1,
                NullableDateProperty = date2,
                ComplexProperty      = new XmlDateClass
                {
                    DateProperty = date3
                }
            };

            var converters     = new IMemberValueConverter[] { new XmlDateMemberValueConverter() };
            var classStorage   = MongoTestHelpers.GetEmptyStorageProvider <XmlDateClass>(nameof(ShouldSaveClassWithXmlDate), converters);
            var dynamicStorage = MongoTestHelpers.GetStorageProvider(nameof(ShouldSaveClassWithXmlDate), converters);

            // When

            classStorage.InsertOne(instance);

            var classInstance   = classStorage.Find().FirstOrDefault();
            var dynamicInstance = dynamicStorage.Find().FirstOrDefault();

            // Then

            Assert.IsNotNull(classInstance);
            Assert.AreEqual(date1, classInstance.DateProperty);
            Assert.AreEqual(date2, classInstance.NullableDateProperty);
            Assert.IsNotNull(classInstance.ComplexProperty);
            Assert.AreEqual(date3, classInstance.ComplexProperty.DateProperty);
            Assert.IsNull(classInstance.ComplexProperty.NullableDateProperty);

            Assert.IsNotNull(dynamicInstance);
            Assert.AreEqual(((Date)date1).UnixTime, dynamicInstance["DateProperty"]);
            Assert.AreEqual(((Date)date2).UnixTime, dynamicInstance["NullableDateProperty"]);
            Assert.IsNotNull(dynamicInstance["ComplexProperty"]);
            Assert.AreEqual(((Date)date3).UnixTime, ((DynamicWrapper)dynamicInstance["ComplexProperty"])["DateProperty"]);
            Assert.IsNull(((DynamicWrapper)dynamicInstance["ComplexProperty"])["NullableDateProperty"]);
        }