public static void ApplyBindingData_Succeeds() { TestPocoEx poco = new TestPocoEx(); Dictionary <string, string> properties = new Dictionary <string, string> { { "A", "123" }, { "B", "456" }, { "c", "789" } }; Dictionary <string, object> bindingData = new Dictionary <string, object>() { { "name", "Ted" }, { "Location", "Seattle" }, { "Age", "25" }, { "Readonly", "Test" }, { "Properties", properties } }; HttpTriggerAttributeBindingProvider.HttpTriggerBinding.ApplyBindingData(poco, bindingData); Assert.Equal("Ted", poco.Name); Assert.Equal("Seattle", poco.Location); Assert.Equal(25, poco.Age); // verifies string was converted Assert.Null(poco.Readonly); Assert.Equal(3, poco.Properties.Count); foreach (var pair in properties) { Assert.Equal(pair.Value, poco.Properties[pair.Key]); } }
public static void ApplyBindingData_Succeeds() { TestPocoEx poco = new TestPocoEx(); Dictionary <string, object> bindingData = new Dictionary <string, object>() { { "name", "Ted" }, { "Location", "Seattle" }, { "Age", "25" }, { "Readonly", "Test" } }; HttpTriggerAttributeBindingProvider.HttpTriggerBinding.ApplyBindingData(poco, bindingData); Assert.Equal("Ted", poco.Name); Assert.Equal("Seattle", poco.Location); Assert.Equal(25, poco.Age); // verifies string was converted Assert.Null(poco.Readonly); }
public async Task BindAsync_Poco_MergedBindingData() { ParameterInfo parameterInfo = GetType().GetMethod("TestPocoFunctionEx").GetParameters()[0]; HttpTriggerAttributeBindingProvider.HttpTriggerBinding binding = new HttpTriggerAttributeBindingProvider.HttpTriggerBinding(new HttpTriggerAttribute(), parameterInfo, true); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://functions/myfunc?code=abc123&Age=25"); JObject requestBody = new JObject { { "Name", "Mathew Charles" }, { "Phone", "(425) 555-6666" } }; request.Content = new StringContent(requestBody.ToString()); request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); Dictionary <string, object> routeData = new Dictionary <string, object> { { "Location", "Seattle" } }; request.Properties.Add(ScriptConstants.AzureFunctionsHttpRouteDataKey, routeData); FunctionBindingContext functionContext = new FunctionBindingContext(Guid.NewGuid(), CancellationToken.None, new TestTraceWriter(TraceLevel.Verbose)); ValueBindingContext context = new ValueBindingContext(functionContext, CancellationToken.None); ITriggerData triggerData = await binding.BindAsync(request, context); Assert.Equal(5, triggerData.BindingData.Count); Assert.Equal("Mathew Charles", triggerData.BindingData["Name"]); Assert.Equal("Seattle", triggerData.BindingData["Location"]); Assert.Equal("(425) 555-6666", triggerData.BindingData["Phone"]); Assert.Equal("25", triggerData.BindingData["Age"]); TestPocoEx testPoco = (TestPocoEx)triggerData.ValueProvider.GetValue(); Assert.Equal("Mathew Charles", testPoco.Name); Assert.Equal("Seattle", testPoco.Location); Assert.Equal("(425) 555-6666", testPoco.Phone); Assert.Equal(25, testPoco.Age); }
public void TestPocoFunctionEx(TestPocoEx poco) { }
public static void ApplyBindingData_Succeeds() { TestPocoEx poco = new TestPocoEx(); Dictionary<string, string> properties = new Dictionary<string, string> { { "A", "123" }, { "B", "456" }, { "c", "789" } }; Dictionary<string, object> bindingData = new Dictionary<string, object>() { { "name", "Ted" }, { "Location", "Seattle" }, { "Age", "25" }, { "Readonly", "Test" }, { "Properties", properties } }; HttpTriggerAttributeBindingProvider.HttpTriggerBinding.ApplyBindingData(poco, bindingData); Assert.Equal("Ted", poco.Name); Assert.Equal("Seattle", poco.Location); Assert.Equal(25, poco.Age); // verifies string was converted Assert.Null(poco.Readonly); Assert.Equal(3, poco.Properties.Count); foreach (var pair in properties) { Assert.Equal(pair.Value, poco.Properties[pair.Key]); } }