private static bool ValidateHeadersSentState(IHttp2Stream stream, IHttp2Headers headers, bool isServer, bool endOfStream)
        {
            var isInformational = isServer && HttpStatusClass.ValueOf(headers.Status) == HttpStatusClass.Informational;

            if ((isInformational || !endOfStream) && stream.IsHeadersSent || stream.IsTrailersSent)
            {
                ThrowHelper.ThrowInvalidOperationException_StreamSentTooManyHeadersEOS(stream.Id, endOfStream);
            }
            return(isInformational);
        }
Пример #2
0
        public void Test_GetNumberOfClassStatusCodes_ForServerErrorClass()
        {
            //Arrange
            string          testedFilePath    = TestFiles.CreateTempFile(@"..\..\InputTestFiles\HundredLogFile.txt");
            HttpStatusClass testedStatusClass = HttpStatusClass.ClientError;
            Analyzer        analyzer          = new Analyzer();
            uint            expectedNumberOfClassStatusCodes = 31;

            //Act
            uint resultNumberOfClassStatusCodes =
                analyzer.GetNumberOfClassStatusCodes(testedFilePath, testedStatusClass);

            //Assert
            Assert.AreEqual(expectedNumberOfClassStatusCodes, resultNumberOfClassStatusCodes);
        }
Пример #3
0
        public void Test_GetNumberOfClassStatusCodes_OnEmptyFile()
        {
            //Arrange
            string          testedFilePath    = TestFiles.CreateTempFile(@"..\..\InputTestFiles\emptyfile.txt");
            HttpStatusClass testedStatusClass = HttpStatusClass.Successful;
            Analyzer        analyzer          = new Analyzer();
            uint            expectedNumberOfClassStatusCodes = 0;

            //Act
            uint resultNumberOfClassStatusCodes =
                analyzer.GetNumberOfClassStatusCodes(testedFilePath, testedStatusClass);

            //Assert
            Assert.AreEqual(expectedNumberOfClassStatusCodes, resultNumberOfClassStatusCodes);
        }
Пример #4
0
        public uint GetNumberOfClassStatusCodes(string filepath, HttpStatusClass statusClass)
        {
            var    pattern = @"\b" + (int)statusClass + @"\d\d\b";
            uint   counter = 0;
            string line;

            using (var reader = new StreamReader(filepath))
            {
                while (null != (line = reader.ReadLine()))
                {
                    if (Regex.Match(line, pattern).Success)
                    {
                        counter += 1;
                    }
                }
            }
            return(counter);
        }