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); }
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); }
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"]); }
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); }
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); }
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)); }
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)); }
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, "=")); }
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)); }
public void CreateShouldReturnHttpHeaderStart() { Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Start, HttpHeaderValueLexer.Create("headerName", "token").Type); }
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); }
public void TokenCanTransitionToEnd() { Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.End, HttpHeaderValueLexer.Create("headerName", "token").ReadNext().ReadNext().Type); }
public void StartCanTransitionToToken() { Assert.Equal(HttpHeaderValueLexer.HttpHeaderValueItemType.Token, HttpHeaderValueLexer.Create("headerName", "token").ReadNext().Type); }
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, "\"")); }