test-outofproc/GetProductColumnTypesSerializationAsyncEnumerable.cs (35 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. using System.Collections.Generic; using Microsoft.Azure.Functions.Worker.Extensions.Sql; using Microsoft.Azure.Functions.Worker; using Microsoft.Azure.Functions.Worker.Http; using DotnetIsolatedTests.Common; using System.Globalization; using System.Threading.Tasks; using System.Web; namespace DotnetIsolatedTests { public static class GetProductsColumnTypesSerializationAsyncEnumerable { /// <summary> /// This function verifies that serializing an item with various data types /// and different languages works when using IAsyncEnumerable. /// </summary> [Function(nameof(GetProductsColumnTypesSerializationAsyncEnumerable))] public static async Task<List<ProductColumnTypes>> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproducts-columntypesserializationasyncenumerable")] HttpRequestData req, [SqlInput("SELECT * FROM [dbo].[ProductsColumnTypes]", "SqlConnectionString")] IAsyncEnumerable<ProductColumnTypes> products) { // Test different cultures to ensure that serialization/deserialization works correctly for all types. // We expect the datetime types to be serialized in UTC format. string language = HttpUtility.ParseQueryString(req.Url.Query)["culture"]; if (!string.IsNullOrEmpty(language)) { CultureInfo.CurrentCulture = new CultureInfo(language); } var productsList = new List<ProductColumnTypes>(); await foreach (ProductColumnTypes item in products) { productsList.Add(item); } return productsList; } } }