public void PageResultValueConverter_CanSerializePageResultOfT() { // Arrange & Act & Assert IEnumerable <Customer> customers = new Customer[] { new Customer { Id = 1, Name = "abc" }, new Customer { Id = 2, Name = "efg" }, }; Uri nextPageLink = new Uri("http://any"); long?count = 2; PageResult <Customer> result = new PageResult <Customer>(customers, nextPageLink, count); JsonSerializerOptions options = new JsonSerializerOptions(); PageResultValueConverter converterFactory = new PageResultValueConverter(); Type type = typeof(PageResult <Customer>); PageResultConverter <Customer> typeConverter = converterFactory.CreateConverter(type, options) as PageResultConverter <Customer>; // Act string json = SerializeUtils.SerializeAsJson(jsonWriter => typeConverter.Write(jsonWriter, result, options)); // Assert Assert.Equal("{\"items\":[{\"Id\":1,\"Name\":\"abc\"},{\"Id\":2,\"Name\":\"efg\"}],\"nextpagelink\":\"http://any\",\"count\":2}", json); }
public void CreateConverter_WorksForPageResultValueConverter() { // Arrange JsonSerializerOptions options = new JsonSerializerOptions(); PageResultValueConverter converter = new PageResultValueConverter(); // Act & Assert Type type = typeof(PageResult <object>); JsonConverter typeConverter = converter.CreateConverter(type, options); Assert.Equal(typeof(PageResultConverter <object>), typeConverter.GetType()); // Act & Assert type = typeof(IEnumerable <object>); typeConverter = converter.CreateConverter(type, options); Assert.Null(typeConverter); }