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\""); }
/// <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 )); }
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()); }); }
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); }
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); }