|
10 | 10 | using System.Net.Http;
|
11 | 11 | using System.Text.RegularExpressions;
|
12 | 12 | using System.Threading.Tasks;
|
| 13 | +using System.Web.Http; |
| 14 | +using System.Web.Http.Routing; |
13 | 15 | using Microsoft.Azure.WebJobs.Host;
|
14 | 16 | using Microsoft.Azure.WebJobs.Script.Description;
|
15 | 17 | using Microsoft.Azure.WebJobs.Script.Tests;
|
@@ -194,6 +196,42 @@ public async Task OnTimeoutException_UsesToken_ManagerKeepsRunning()
|
194 | 196 | Assert.DoesNotContain(trace.Traces, t => t.Message == "A function timeout has occurred. Host is shutting down.");
|
195 | 197 | }
|
196 | 198 |
|
| 199 | + [Fact] |
| 200 | + public void AddRouteDataToRequest_DoesNotAddRequestProperty_WhenRouteDataNull() |
| 201 | + { |
| 202 | + var mockRouteData = new Mock<IHttpRouteData>(MockBehavior.Strict); |
| 203 | + IDictionary<string, object> values = null; |
| 204 | + mockRouteData.Setup(p => p.Values).Returns(values); |
| 205 | + HttpRequestMessage request = new HttpRequestMessage(); |
| 206 | + |
| 207 | + WebScriptHostManager.AddRouteDataToRequest(mockRouteData.Object, request); |
| 208 | + |
| 209 | + Assert.False(request.Properties.ContainsKey(ScriptConstants.AzureFunctionsHttpRouteDataKey)); |
| 210 | + } |
| 211 | + |
| 212 | + [Fact] |
| 213 | + public void AddRouteDataToRequest_AddsRequestProperty_WhenRouteDataNotNull() |
| 214 | + { |
| 215 | + var mockRouteData = new Mock<IHttpRouteData>(MockBehavior.Strict); |
| 216 | + IDictionary<string, object> values = new Dictionary<string, object> |
| 217 | + { |
| 218 | + { "p1", "abc" }, |
| 219 | + { "p2", 123 }, |
| 220 | + { "p3", null }, |
| 221 | + { "p4", RouteParameter.Optional } |
| 222 | + }; |
| 223 | + mockRouteData.Setup(p => p.Values).Returns(values); |
| 224 | + HttpRequestMessage request = new HttpRequestMessage(); |
| 225 | + |
| 226 | + WebScriptHostManager.AddRouteDataToRequest(mockRouteData.Object, request); |
| 227 | + |
| 228 | + var result = (IDictionary<string, object>)request.Properties[ScriptConstants.AzureFunctionsHttpRouteDataKey]; |
| 229 | + Assert.Equal(result["p1"], "abc"); |
| 230 | + Assert.Equal(result["p2"], 123); |
| 231 | + Assert.Equal(result["p3"], null); |
| 232 | + Assert.Equal(result["p4"], null); |
| 233 | + } |
| 234 | + |
197 | 235 | private async Task RunTimeoutExceptionTest(TraceWriter trace, bool handleCancellation)
|
198 | 236 | {
|
199 | 237 | TimeSpan gracePeriod = TimeSpan.FromMilliseconds(5000);
|
|
0 commit comments