public void BasicHttpFunction()
        {
            var generator = new FunctionMetadataGenerator();
            var typeDef   = TestUtility.GetTypeDefinition(typeof(BasicHttp));
            var functions = generator.GenerateFunctionMetadata(typeDef);

            ValidateFunction(functions.Single(), BasicHttp.FunctionName, GetEntryPoint(nameof(BasicHttp), nameof(BasicHttp.Http)),
                             b => ValidateTrigger(b),
                             b => ValidateReturn(b));

            void ValidateTrigger(ExpandoObject b)
            {
                AssertExpandoObject(b, new Dictionary <string, object>
                {
                    { "Name", "myReq" },
                    { "Type", "HttpTrigger" },
                    { "Direction", "In" },
                    { "authLevel", "Admin" },
                    { "methods", new[] { "get", "Post" } },
                    { "Route", "/api2" }
                });
            }

            void ValidateReturn(ExpandoObject b)
            {
                AssertExpandoObject(b, new Dictionary <string, object>
                {
                    { "Name", "$return" },
                    { "Type", "http" },
                    { "Direction", "Out" }
                });
            }

            FunctionMetadataJsonWriter.WriteMetadata(functions, ".");
        }
        public void BasicHttpFunctionWithNoResponse()
        {
            var generator  = new FunctionMetadataGenerator();
            var module     = ModuleDefinition.ReadModule(_thisAssembly.Location);
            var typeDef    = TestUtility.GetTypeDefinition(typeof(BasicHttpWithNoResponse));
            var functions  = generator.GenerateFunctionMetadata(typeDef);
            var extensions = generator.Extensions;

            AssertDictionary(extensions, new Dictionary <string, string>
            {
            });

            ValidateFunction(functions.Single(), BasicHttpWithNoResponse.FunctionName, GetEntryPoint(nameof(BasicHttpWithNoResponse), nameof(BasicHttpWithNoResponse.Http)),
                             b => ValidateTrigger(b));

            void ValidateTrigger(ExpandoObject b)
            {
                AssertExpandoObject(b, new Dictionary <string, object>
                {
                    { "Name", "myReq" },
                    { "Type", "HttpTrigger" },
                    { "Direction", "In" },
                    { "authLevel", "Admin" },
                    { "methods", new[] { "get", "Post" } },
                    { "Route", "/api2" }
                });
            }

            FunctionMetadataJsonWriter.WriteMetadata(functions, ".");
        }