public async Task SerializesDateTimesProperly() { var mockSession = new Mock <IAsyncSession>(); mockSession.Setup(s => s.RunAsync("CALL dbms.components()")).Returns(Task.FromResult <IResultCursor>(new ServerInfo())); var mockDriver = new Mock <IDriver>(); mockDriver.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(mockSession.Object); var bgc = new BoltGraphClient(mockDriver.Object); await bgc.ConnectAsync(); var cwd = new ClassWithDateTime { Dt = new DateTime(2000, 1, 1) };; var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwd); var expectedParameters = new Dictionary <string, object> { { "testParam", new Dictionary <string, object> { { "Dt", JsonConvert.SerializeObject(cwd.Dt).Trim('\"') } } } }; var query = cfq.Query; query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue(); }
public void DateTimeSerialization() { var initial = new ClassWithDateTime() { Time = DateTime.Now }; var result = TestUtils.SerializeDeserializeTest(initial); Assert.True(result.Time == initial.Time); }
public void StrongTypeFormatterDateTimeInClass() { var firstDate = DateTime.Now; var secondDate = DateTime.Now.AddHours(1); var strongTypeFormatter = new StrongTypeFormatter(); var testEntity = new ClassWithDateTime() { FirstDate = firstDate, OtherDate = secondDate }; var buffer = strongTypeFormatter.Serialize(testEntity); var resultTime = (ClassWithDateTime)strongTypeFormatter.Deserialize(buffer); Assert.AreEqual(testEntity.FirstDate, resultTime.FirstDate); Assert.AreEqual(testEntity.OtherDate, resultTime.OtherDate); }
public void Component_ClassWithDateTime_ResultIsTheSameAsInput() { //Arrange ClassWithDateTime toSerialize = _fixture.Create <ClassWithDateTime>(); //Act var result = AvroConvert.Serialize(toSerialize); var deserialized = AvroConvert.Deserialize <ClassWithDateTime>(result); //Assert Assert.NotNull(result); Assert.NotNull(deserialized); Assert.Equal(toSerialize.ArriveBy.Second, deserialized.ArriveBy.Second); Assert.Equal(toSerialize.ArriveBy.Minute, deserialized.ArriveBy.Minute); Assert.Equal(toSerialize.ArriveBy.Hour, deserialized.ArriveBy.Hour); Assert.Equal(toSerialize.ArriveBy.Day, deserialized.ArriveBy.Day); Assert.Equal(toSerialize.ArriveBy.Month, deserialized.ArriveBy.Month); Assert.Equal(toSerialize.ArriveBy.Year, deserialized.ArriveBy.Year); }
public void GivenDateTimeProperty_WhenUsingSchemaWithTimeAsTimestampMicroseconds_ThenShouldWork() { //Arrange var toSerialize = new ClassWithDateTime { ArriveBy = DateTime.UtcNow }; //Act var schema = Schema.Create(toSerialize); // Change schema logical type from timestamp-millis to timestamp-micros (a bit hacky) var schemaJson = schema.ToString().Replace(LogicalTypeSchema.LogicalTypeEnum.TimestampMilliseconds, LogicalTypeSchema.LogicalTypeEnum.TimestampMicroseconds); var microsecondsSchema = new JsonSchemaBuilder().BuildSchema(schemaJson); byte[] result; using (MemoryStream resultStream = new MemoryStream()) { using (var writer = new Encoder(microsecondsSchema, resultStream, CodecType.Null)) { writer.Append(toSerialize); } result = resultStream.ToArray(); } var avro2Json = AvroConvert.Avro2Json(result, microsecondsSchema.ToString()); var deserialized = JsonConvert.DeserializeObject <ClassWithDateTime>(avro2Json); //Assert Assert.NotNull(result); Assert.NotNull(deserialized); Assert.Equal(toSerialize.ArriveBy.Millisecond, deserialized.ArriveBy.Millisecond); Assert.Equal(toSerialize.ArriveBy.Second, deserialized.ArriveBy.Second); Assert.Equal(toSerialize.ArriveBy.Minute, deserialized.ArriveBy.Minute); Assert.Equal(toSerialize.ArriveBy.Hour, deserialized.ArriveBy.Hour); Assert.Equal(toSerialize.ArriveBy.Day, deserialized.ArriveBy.Day); Assert.Equal(toSerialize.ArriveBy.Month, deserialized.ArriveBy.Month); Assert.Equal(toSerialize.ArriveBy.Year, deserialized.ArriveBy.Year); }