public WebScriptHostHandlerTests() { _settingsManager = ScriptSettingsManager.Instance; var eventManager = new Mock <IScriptEventManager>(); _managerMock = new Mock <WebScriptHostManager>(MockBehavior.Strict, new ScriptHostConfiguration(), new TestSecretManagerFactory(), eventManager.Object, _settingsManager, new WebHostSettings { SecretsPath = _secretsDirectory.Path }, null, null, null, 1, 50); _managerMock.SetupGet(p => p.Initialized).Returns(true); Mock <IDependencyResolver> mockResolver = new Mock <IDependencyResolver>(MockBehavior.Strict); mockResolver.Setup(p => p.GetService(typeof(WebScriptHostManager))).Returns(_managerMock.Object); _webHostSettings = new WebHostSettings(); mockResolver.Setup(p => p.GetService(typeof(WebHostSettings))).Returns(_webHostSettings); HttpConfiguration config = new HttpConfiguration(); config.DependencyResolver = mockResolver.Object; WebScriptHostHandler handler = new WebScriptHostHandler(config) { InnerHandler = new TestHandler() }; _invoker = new HttpMessageInvoker(handler); }
public async Task SendAsync_WritesExpectedTraces() { var request = new HttpRequestMessage(HttpMethod.Get, "http://functions.com/api/testfunc?code=123"); string requestId = Guid.NewGuid().ToString(); request.Headers.Add(ScriptConstants.AntaresLogIdHeaderName, requestId); WebScriptHostHandler.SetRequestId(request); request.SetAuthorizationLevel(AuthorizationLevel.Function); await _invoker.SendAsync(request, CancellationToken.None); var traces = _traceWriter.Traces.ToArray(); Assert.Equal(3, traces.Length); // validate executing trace var trace = traces[0]; Assert.Equal(TraceLevel.Info, trace.Level); string message = Regex.Replace(trace.Message, @"\s+", string.Empty); Assert.Equal($"ExecutingHTTPrequest:{{\"requestId\":\"{requestId}\",\"method\":\"GET\",\"uri\":\"/api/testfunc\"}}", message); // validate executed trace trace = traces[1]; Assert.Equal(TraceLevel.Info, trace.Level); message = Regex.Replace(trace.Message, @"\s+", string.Empty); Assert.Equal($"ExecutedHTTPrequest:{{\"requestId\":\"{requestId}\",\"method\":\"GET\",\"uri\":\"/api/testfunc\",\"authorizationLevel\":\"Function\"}}", message); // validate response trace trace = traces[2]; Assert.Equal(TraceLevel.Info, trace.Level); message = Regex.Replace(trace.Message, @"\s+", string.Empty); Assert.Equal($"Responsedetails:{{\"requestId\":\"{requestId}\",\"status\":\"OK\"}}", message); }
public void SetRequestId_SetsExpectedValue() { // if the log header is present, it is used; var request = new HttpRequestMessage(HttpMethod.Get, "http://test.com"); string logIdValue = Guid.NewGuid().ToString(); request.Headers.Add(ScriptConstants.AntaresLogIdHeaderName, logIdValue); WebScriptHostHandler.SetRequestId(request); string requestId = request.GetRequestId(); Assert.Equal(logIdValue, requestId); // otherwise a new guid is specified request = new HttpRequestMessage(HttpMethod.Get, "http://test.com"); WebScriptHostHandler.SetRequestId(request); requestId = request.GetRequestId(); Guid.Parse(requestId); }
public WebScriptHostHandlerTests() { _managerMock = new Mock <WebScriptHostManager>(MockBehavior.Strict, new ScriptHostConfiguration(), new SecretManager(), new WebHostSettings()); _managerMock.SetupGet(p => p.Initialized).Returns(true); Mock <IDependencyResolver> mockResolver = new Mock <IDependencyResolver>(MockBehavior.Strict); mockResolver.Setup(p => p.GetService(typeof(WebScriptHostManager))).Returns(_managerMock.Object); HttpConfiguration config = new HttpConfiguration(); config.DependencyResolver = mockResolver.Object; WebScriptHostHandler handler = new WebScriptHostHandler(config, hostTimeoutSeconds: 1, hostRunningPollIntervalMS: 50) { InnerHandler = new TestHandler() }; _invoker = new HttpMessageInvoker(handler); }