Пример #1
0
        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();
        }
Пример #2
0
        public void DateTimeSerialization()
        {
            var initial = new ClassWithDateTime()
            {
                Time = DateTime.Now
            };
            var result = TestUtils.SerializeDeserializeTest(initial);

            Assert.True(result.Time == initial.Time);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }