public void ConvertToDate_ValueShouldSuccessfullyRoundTrip()
        {
            var dateTime = TestData.Create <DateTime>().Date;
            var subject  = new IsoDateConverter();

            JsonConverterTestHelper.AssertCanConvert(subject, dateTime);
            JsonConverterTestHelper.AssertRoundTripOfValue(subject, dateTime);
        }
        public void ConvertToDate_ValueShouldBeFormattedAsExpected()
        {
            var dateTime = new DateTime(2020, 06, 03);
            var subject  = new IsoDateConverter();
            var value    = JsonConverterTestHelper.WriteToString(subject, dateTime);

            value.Should().Be("\"03/06/2020\"");
        }
Exemple #3
0
 /// <summary>
 ///     Get forecast from server
 /// </summary>
 /// <param name="cityId">ID of city</param>
 /// <param name="parkingLotId">ID of parking lot</param>
 /// <param name="from">start time (inclusive)</param>
 /// <param name="to">end time (inclusive)</param>
 /// <param name="ct">cancellation token</param>
 /// <returns></returns>
 public Task <Forecast> GetForecastAsync(string cityId, string parkingLotId, DateTime from, DateTime to, CancellationToken?ct = null)
 {
     if (from > to)
     {
         throw new ArgumentOutOfRangeException(nameof(to), "End date must be after or equal to start date.");
     }
     return(Request <Forecast>(
                requestUri:
                $"{cityId}/{parkingLotId}/timespan?from={IsoDateConverter.ToIsoString(@from)}&to={IsoDateConverter.ToIsoString(to)}",
                cancellationToken: ct
                ));
 }
Exemple #4
0
        public void ThrowsInvalidDateException()
        {
            Assert.Throws <InvalidISODateException>(() =>
            {
                IsoDateConverter converter    = new IsoDateConverter();
                Utf8JsonReader utf8JsonReader = new Utf8JsonReader(Encoding.UTF8.GetBytes("{ \"date\": \"2021-02-29\" }"), false, new JsonReaderState(new JsonReaderOptions()));

                while (utf8JsonReader.Read())
                {
                    if (utf8JsonReader.TokenType == JsonTokenType.String)
                    {
                        break;
                    }
                }

                DateTime result = converter.Read(ref utf8JsonReader, typeof(DateTime), new JsonSerializerOptions());
            });
        }
Exemple #5
0
        public void ConvertsFromDateToJson(string expected, int year, int month, int day)
        {
            // Arrange
            IsoDateConverter converter = new IsoDateConverter();
            string           result;

            // Act
            using (var stream = new MemoryStream())
            {
                Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(stream, new JsonWriterOptions {
                    Indented = true
                });
                converter.Write(utf8JsonWriter, new DateTime(year, month, day), new JsonSerializerOptions());
                utf8JsonWriter.Flush();
                result = Encoding.UTF8.GetString(stream.ToArray());
            }

            // Assert
            Assert.Equal(expected, result);
        }
Exemple #6
0
        public void ConvertsFromJsonToDate(string jsonString, int expectedYear, int expectedMonth, int expectedDay)
        {
            // Arrange
            IsoDateConverter converter      = new IsoDateConverter();
            Utf8JsonReader   utf8JsonReader = new Utf8JsonReader(Encoding.UTF8.GetBytes(jsonString), false, new JsonReaderState(new JsonReaderOptions()));

            // Advance the reader to the date string.
            while (utf8JsonReader.Read())
            {
                if (utf8JsonReader.TokenType == JsonTokenType.String)
                {
                    break;
                }
            }

            // Act
            DateTime result = converter.Read(ref utf8JsonReader, typeof(DateTime), new JsonSerializerOptions());

            // Assert
            DateTime expected = new DateTime(expectedYear, expectedMonth, expectedDay);

            Assert.Equal(expected, result);
        }