private static void VerifyWeatherForecastWithPOCOs(WeatherForecastWithPOCOs expected, WeatherForecastWithPOCOs obj) { Assert.Equal(expected.Date, obj.Date); Assert.Equal(expected.TemperatureCelsius, obj.TemperatureCelsius); Assert.Equal(expected.Summary, obj.Summary); Assert.Equal(expected.DatesAvailable.Count, obj.DatesAvailable.Count); for (int i = 0; i < expected.DatesAvailable.Count; i++) { Assert.Equal(expected.DatesAvailable[i], obj.DatesAvailable[i]); } List <KeyValuePair <string, HighLowTemps> > expectedTemperatureRanges = expected.TemperatureRanges.OrderBy(kv => kv.Key).ToList(); List <KeyValuePair <string, HighLowTemps> > objTemperatureRanges = obj.TemperatureRanges.OrderBy(kv => kv.Key).ToList(); Assert.Equal(expectedTemperatureRanges.Count, objTemperatureRanges.Count); for (int i = 0; i < expectedTemperatureRanges.Count; i++) { Assert.Equal(expectedTemperatureRanges[i].Key, objTemperatureRanges[i].Key); Assert.Equal(expectedTemperatureRanges[i].Value.Low, objTemperatureRanges[i].Value.Low); Assert.Equal(expectedTemperatureRanges[i].Value.High, objTemperatureRanges[i].Value.High); } Assert.Equal(expected.SummaryWords.Length, obj.SummaryWords.Length); for (int i = 0; i < expected.SummaryWords.Length; i++) { Assert.Equal(expected.SummaryWords[i], obj.SummaryWords[i]); } }
public async Task RoundTripSerializerOverloads() { WeatherForecastWithPOCOs expected = CreateWeatherForecastWithPOCOs(); string json = await Serializer.SerializeWrapper(expected, JsonContext.Default.WeatherForecastWithPOCOs); WeatherForecastWithPOCOs actual = await Serializer.DeserializeWrapper(json, JsonContext.Default.WeatherForecastWithPOCOs); VerifyWeatherForecastWithPOCOs(expected, actual); json = await Serializer.SerializeWrapper(actual, typeof(WeatherForecastWithPOCOs), JsonContext.Default); actual = (WeatherForecastWithPOCOs)await Serializer.DeserializeWrapper(json, typeof(WeatherForecastWithPOCOs), JsonContext.Default); VerifyWeatherForecastWithPOCOs(expected, actual); }