public void ValueSeparatorCanTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token= \"quoted-string\"").ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator);
            lexer.ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString);
        }
        public void EmptyHeaderValueToHttpHeaderValueElementsShouldReturnEmptyDictionary()
        {
            var lexer = HttpHeaderValueLexer.Create("header", " ");

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.Start);
            lexer.ToHttpHeaderValue().Count.Should().Be(0);
        }
        public void ParameterSeparatorCanTransitionToToken()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token  ;   token").ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator);
            lexer.ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.Token);
        }
Exemple #4
0
        public void ParameterSeparatorCanTransitionToToken()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token  ;   token").ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator, lexer.Type);
            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Token, lexer.ReadNext().Type);
        }
Exemple #5
0
        public void EmptyHeaderValueToHttpHeaderValueElementsShouldReturnEmptyDictionary()
        {
            var lexer = HttpHeaderValueLexer.Create("header", " ");

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Start, lexer.Type);
            Assert.Empty(lexer.ToHttpHeaderValue());
        }
        public void ToHttpHeaderValueElementsShouldReturnDictionaryContainingAllElements()
        {
            HttpHeaderValueElement e1    = new HttpHeaderValueElement("e1", null, new KeyValuePair <string, string> [0]);
            HttpHeaderValueElement e2    = new HttpHeaderValueElement("e2", "token", new KeyValuePair <string, string> [0]);
            HttpHeaderValueElement e3    = new HttpHeaderValueElement("e3", "\"quoted-string\"", new KeyValuePair <string, string> [0]);
            HttpHeaderValueElement e4    = new HttpHeaderValueElement("e4", null, new[] { new KeyValuePair <string, string>("p1", "v1"), new KeyValuePair <string, string>("p2", null) });
            HttpHeaderValueElement e5    = new HttpHeaderValueElement("e5", "token", new[] { new KeyValuePair <string, string>("p1", null), new KeyValuePair <string, string>("p2", "\"v2\"") });
            HttpHeaderValueElement e6    = new HttpHeaderValueElement("e6", "\"quoted-string\"", new[] { new KeyValuePair <string, string>("p1", null), new KeyValuePair <string, string>("p2", null), new KeyValuePair <string, string>("p3", "v3"), new KeyValuePair <string, string>("p4", "\"v4\"") });
            const string           eStr1 = "e1";
            const string           eStr2 = "e2=token";
            const string           eStr3 = "e3=\"quoted-string\"";
            const string           eStr4 = "e4;p1=v1;p2";
            const string           eStr5 = "e5=token;p1;p2=\"v2\"";
            const string           eStr6 = "e6=\"quoted-string\";p1;p2;p3=v3;p4=\"v4\"";

            string headerValue = string.Join(",", eStr1, eStr2, eStr3, eStr4, eStr5, eStr6);
            var    lexer       = HttpHeaderValueLexer.Create("header", headerValue);
            var    elements    = lexer.ToHttpHeaderValue();

            elements.Count.Should().Be(6);
            AssertEqual(e1, elements["e1"]);
            AssertEqual(e2, elements["e2"]);
            AssertEqual(e3, elements["e3"]);
            AssertEqual(e4, elements["e4"]);
            AssertEqual(e5, elements["e5"]);
            AssertEqual(e6, elements["e6"]);
        }
Exemple #7
0
        public void ValueSeparatorCanTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token= \"quoted-string\"").ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator, lexer.Type);
            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString, lexer.ReadNext().Type);
        }
        public void QuotedStringCanTransitionToParameterSeparator()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=   \"quotes-string\";").ReadNext().ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString);
            lexer.ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator);
        }
Exemple #9
0
        public void QuotedStringCanTransitionToParameterSeparator()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=   \"quotes-string\";").ReadNext().ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString, lexer.Type);
            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator, lexer.ReadNext().Type);
        }
Exemple #10
0
        public void ParameterSeparatorCannotTransitionToSeparator()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token;;").ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator, lexer.Type);
            Action test = () => lexer.ReadNext();

            test.Throws <ODataException>(Strings.HttpHeaderValueLexer_FailedToReadTokenOrQuotedString("headerName", "token;;", 6));
        }
Exemple #11
0
        public void ParameterSeparatorCannotTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token;\"quoted-string\"").ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator, lexer.Type);
            Action test = () => lexer.ReadNext();

            test.Throws <ODataException>(Strings.HttpHeaderValueLexer_TokenExpectedButFoundQuotedString("headerName", "token;\"quoted-string\"", 6));
        }
Exemple #12
0
        public void ValueSeparatorCannotTransitionToEnd()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=").ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator, lexer.Type);
            Action test = () => lexer.ReadNext();

            test.Throws <ODataException>(Strings.HttpHeaderValueLexer_EndOfFileAfterSeparator("headerName", "token=", 6, "="));
        }
        public void QuotedStringCannotTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=\"quotes-string\"\"quotes-string\"").ReadNext().ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString);
            Action test = () => lexer.ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_UnrecognizedSeparator("headerName", "token=\"quotes-string\"\"quotes-string\"", 21, "\""));
        }
        public void ParameterSeparatorCannotTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token;\"quoted-string\"").ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator);
            Action test = () => lexer.ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_TokenExpectedButFoundQuotedString("headerName", "token;\"quoted-string\"", 6));
        }
        public void ValueSeparatorCannotTransitionToEnd()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=").ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator);
            Action test = () => lexer.ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_EndOfFileAfterSeparator("headerName", "token=", 6, "="));
        }
Exemple #16
0
        public void QuotedStringCannotTransitionToQuotedString()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token=\"quotes-string\"\"quotes-string\"").ReadNext().ReadNext().ReadNext();

            Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.QuotedString, lexer.Type);
            Action test = () => lexer.ReadNext();

            test.Throws <ODataException>(Strings.HttpHeaderValueLexer_UnrecognizedSeparator("headerName", "token=\"quotes-string\"\"quotes-string\"", 21, "\""));
        }
        public void ParameterSeparatorCannotTransitionToSeparator()
        {
            var lexer = HttpHeaderValueLexer.Create("headerName", "token;;").ReadNext().ReadNext();

            lexer.Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ParameterSeparator);
            Action test = () => lexer.ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_FailedToReadTokenOrQuotedString("headerName", "token;;", 6));
        }
 public void StartCanTransitionToToken()
 {
     HttpHeaderValueLexer.Create("headerName", "token").ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.Token);
 }
        public void StartCannotTrnasistionToValueSeparator()
        {
            Action test = () => HttpHeaderValueLexer.Create("headerName", "=").ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_FailedToReadTokenOrQuotedString("headerName", "=", 0));
        }
        public void StartCannotTransitionToQuotedString()
        {
            Action test = () => HttpHeaderValueLexer.Create("headerName", "\"quoted-string\"").ReadNext();

            test.ShouldThrow <ODataException>().WithMessage(Strings.HttpHeaderValueLexer_TokenExpectedButFoundQuotedString("headerName", "\"quoted-string\"", 0));
        }
Exemple #21
0
 public void CreateShouldReturnHttpHeaderStart()
 {
     Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Start, HttpHeaderValueLexer.Create("headerName", "token").Type);
 }
Exemple #22
0
        public void StartCannotTrnasistionToParameterSeparator()
        {
            Action test = () => HttpHeaderValueLexer.Create("headerName", ";").ReadNext();

            test.Throws <ODataException>(Strings.HttpHeaderValueLexer_FailedToReadTokenOrQuotedString("headerName", ";", 0));
        }
 public void CreateShouldReturnHttpHeaderStart()
 {
     HttpHeaderValueLexer.Create("headerName", "token").Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.Start);
 }
Exemple #24
0
 public void TokenCanTransitionToEnd()
 {
     Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.End, HttpHeaderValueLexer.Create("headerName", "token").ReadNext().ReadNext().Type);
 }
Exemple #25
0
 public void StartCanTransitionToToken()
 {
     Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Token, HttpHeaderValueLexer.Create("headerName", "token").ReadNext().Type);
 }
Exemple #26
0
 public void TokenCanTransitionToValueSeparator()
 {
     Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator, HttpHeaderValueLexer.Create("headerName", "token  =  ").ReadNext().ReadNext().Type);
 }
 public void CreateWithNullValueShouldReturnHttpHeaderStart()
 {
     HttpHeaderValueLexer.Create("headerName", null).Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.Start);
 }
 public void TokenCanTransitionToValueSeparator()
 {
     HttpHeaderValueLexer.Create("headerName", "token  =  ").ReadNext().ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.ValueSeparator);
 }
 public void TokenCanTransitionToEnd()
 {
     HttpHeaderValueLexer.Create("headerName", "token").ReadNext().ReadNext().Type.Should().Be(HttpHeaderValueLexer.HttpHeaderValueItemType.End);
 }
        public void TokenCannotNotTransitionToQuotedString()
        {
            Action test = () => HttpHeaderValueLexer.Create("headerName", "token\"quotes-string\"").ReadNext().ReadNext();

            test.ShouldThrow <ODataException>(Strings.HttpHeaderValueLexer_UnrecognizedSeparator("headerName", "token\"quotes-string\"", 5, "\""));
        }