public void ReadStatusLine_ValidStatusCode_ResponseMessageValueSet(string statusLine, HttpStatusCode expectedCode, string expectedPhrase)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            CurlResponseParseUtils.ReadStatusLine(response, statusLine);
            Assert.Equal <HttpStatusCode>(expectedCode, response.StatusCode);
            Assert.Equal <string>(expectedPhrase, response.ReasonPhrase);
        }
        public void ReadHeaderName_ValidLineWithEmptyHeaderValue_HeaderReturnedAndIndexSet()
        {
            string headerName = "TestHeader";
            string headerLine = string.Format("{0}:", headerName);
            int    index;

            Assert.Equal <string>(headerName, CurlResponseParseUtils.ReadHeaderName(headerLine, out index));
            Assert.Equal <string>(string.Empty, headerLine.Substring(index));
        }
        public void ReadStatusLine_ValidStatusCodeLine_ResponseMessageVersionSet(string statusLine, int major, int minor)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            CurlResponseParseUtils.ReadStatusLine(response, statusLine);
            int expectedMajor = 0;
            int expectedMinor = 0;

            if (major == 1 && (minor == 0 || minor == 1))
            {
                expectedMajor = 1;
                expectedMinor = minor;
            }

            Assert.Equal <int>(expectedMajor, response.Version.Major);
            Assert.Equal <int>(expectedMinor, response.Version.Minor);
        }
        public void ReadStatusLine_InvalidStatusCode_ThrowsHttpRequestException(string statusLine, HttpStatusCode expectedCode, string phrase)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            Assert.Throws <HttpRequestException>(() => CurlResponseParseUtils.ReadStatusLine(response, statusLine));
        }
        public void ReadHeaderName_InvalidHeaderLine_ThrowsHttpRequestException(string headerLine)
        {
            int index;

            Assert.Throws <HttpRequestException>(() => CurlResponseParseUtils.ReadHeaderName(headerLine, out index));
        }
        public void ReadHeaderName_EmptyString_ReturnsNull()
        {
            int index;

            Assert.Null(CurlResponseParseUtils.ReadHeaderName(string.Empty, out index));
        }