示例#1
0
        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());
        }
示例#2
0
        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"]);
        }
示例#3
0
        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);
        }