public async Task ExecuteAsync_WithExactlyThreeValidParseResultSections_DoesNotUpdateHeaders() { ArrangeInputs(parseResultSections: "set header test", out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult); SetHeaderCommand setHeaderCommand = new SetHeaderCommand(); await setHeaderCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); Dictionary <string, IEnumerable <string> > headers = httpState.Headers; KeyValuePair <string, IEnumerable <string> > firstHeader = headers.First(); Assert.Single(httpState.Headers); Assert.Equal("User-Agent", firstHeader.Key); Assert.Equal("HTTP-REPL", firstHeader.Value.First()); }
public async Task ExecuteAsync_WithUnknownHeader_SendsTelemetryWithHashedHeaderName() { ArrangeInputs(parseResultSections: "set header name value", out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult); TelemetryCollector telemetry = new TelemetryCollector(); SetHeaderCommand setHeaderCommand = new SetHeaderCommand(telemetry); await setHeaderCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); Assert.Single(telemetry.Telemetry); TelemetryCollector.CollectedTelemetry collectedTelemetry = telemetry.Telemetry[0]; Assert.Equal("SetHeader", collectedTelemetry.EventName); Assert.Equal(Sha256Hasher.Hash("name"), collectedTelemetry.Properties["HeaderName"]); Assert.Equal("False", collectedTelemetry.Properties["IsValueEmpty"]); }
public async Task ExecuteAsync_WithMoreThanThreeValidParseResultSections_AddsEntryToHeaders() { ArrangeInputs(parseResultSections: "set header name value1 value2", out MockedShellState shellState, out HttpState httpState, out ICoreParseResult parseResult); SetHeaderCommand setHeaderCommand = new SetHeaderCommand(); await setHeaderCommand.ExecuteAsync(shellState, httpState, parseResult, CancellationToken.None); Dictionary <string, IEnumerable <string> > headers = httpState.Headers; Assert.Equal(2, httpState.Headers.Count); Assert.True(headers.ContainsKey("User-Agent")); Assert.True(headers.ContainsKey("name")); headers.TryGetValue("User-Agent", out IEnumerable <string> userAgentHeaderValues); headers.TryGetValue("name", out IEnumerable <string> nameHeaderValues); Assert.Contains("HTTP-REPL", userAgentHeaderValues); Assert.Contains("value1", nameHeaderValues); Assert.Contains("value2", nameHeaderValues); }