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); }
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"]); }