public async void Given_QueryString_InvokeAsync_ShouldReturn_Result(string name, string contentType, string query, int countExpected) { var models = new List <ContentModel>() { new ContentModel() { Name = name, ContentType = ContentType.Parse(contentType) } }; this.Req = this.CreateRequest($"http://localhost?q={query}"); var function = this._fixture.ArrangeGetArmTemplateDirectoriesFunction(out Mock <IGitHubService> gitHubService); gitHubService.Setup(p => p.GetArmTemplateDirectoriesAsync(It.IsAny <string>())) .ReturnsAsync(models.Where(p => p.Name.ContainsEquivalent(query)).ToList); var options = new GetArmTemplateDirectoriesFunctionParameterOptions() { Query = query }; this.Res = await function.InvokeAsync(this.Req, options).ConfigureAwait(false); this.Res.StatusCode.Should().Be(HttpStatusCode.OK); var result = await this.Res.Content.ReadAsAsync <List <ContentModel> >().ConfigureAwait(false); result.Should().HaveCount(countExpected); }
/// <summary> /// Invokes the HTTP trigger. /// </summary> /// <param name="req"><see cref="HttpRequestMessage"/> instance.</param> /// <param name="log"><see cref="ILogger"/> instance.</param> /// <returns>Returns the <see cref="HttpResponseMessage"/> instance.</returns> public static async Task <HttpResponseMessage> Run(HttpRequestMessage req, ILogger log) { var options = new GetArmTemplateDirectoriesFunctionParameterOptions() { Query = GetQuery(req) }; var res = await FunctionFactory.Create <IGetArmTemplateDirectoriesFunction>(log) .InvokeAsync(req, options) .ConfigureAwait(false); return(res); }