コード例 #1
0
        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);
        }