public void Read_StringValue() { // arrange byte[] sourceText = Encoding.UTF8.GetBytes( "{ me(a: \"Abc¢def\\n\") }"); // act var tokens = new List<SyntaxTokenInfo>(); var reader = new Utf8GraphQLReader(sourceText); while (reader.Read()) { tokens.Add(SyntaxTokenInfo.FromReader(in reader)); } // assert tokens.MatchSnapshot(); }
public void Read_String_SkipEscapes() { // arrange byte[] sourceText = Encoding.UTF8.GetBytes( "abc \"def\\\"\" ghi"); // act var tokens = new List<SyntaxTokenInfo>(); var reader = new Utf8GraphQLReader(sourceText); while (reader.Read()) { tokens.Add(SyntaxTokenInfo.FromReader(in reader)); } // assert tokens.MatchSnapshot(); }
public void Read_Comment() { // arrange byte[] sourceText = Encoding.UTF8.GetBytes( "{ #test me foo bar \n me }"); // act var tokens = new List<SyntaxTokenInfo>(); var reader = new Utf8GraphQLReader(sourceText); while (reader.Read()) { tokens.Add(SyntaxTokenInfo.FromReader(in reader)); } // assert tokens.MatchSnapshot(); }
private void ReadToken_SingleLine_ParsesCorrectly() { // arrange byte[] source = Encoding.UTF8.GetBytes( "\"\"\"helloWorld_123\"\"\""); var reader = new Utf8GraphQLReader(source); // act reader.Read(); // assert Assert.Equal("helloWorld_123", reader.GetString()); Assert.Equal(TokenKind.BlockString, reader.Kind); Assert.Equal(1, reader.Line); Assert.Equal(1, reader.Column); Assert.Equal(0, reader.Start); Assert.Equal(19, reader.End); }
public void Read_KitchenSinkQuery() { // arrange byte[] sourceText = Encoding.UTF8.GetBytes( FileResource.Open("kitchen-sink.graphql")); // act var tokens = new List<SyntaxTokenInfo>(); var reader = new Utf8GraphQLReader(sourceText); while (reader.Read()) { tokens.Add(SyntaxTokenInfo.FromReader(in reader)); } // assert tokens.MatchSnapshot(); }
private void UnescapeString() { // arrange byte[] source = Encoding.UTF8.GetBytes("\"abc\""); var reader = new Utf8GraphQLReader(source); reader.Read(); // act var buffer = new byte[3 * 4]; var span = buffer.AsSpan(); reader.UnescapeValue(ref span); // assert Assert.Equal(3, span.Length); Assert.Equal("abc", Utf8GraphQLReader.GetString(span)); }
private void ReadToken(string sourceBody, bool isFloat) { // arrange byte[] source = Encoding.UTF8.GetBytes(sourceBody); var reader = new Utf8GraphQLReader(source); // act reader.Read(); // assert Assert.Equal(sourceBody, reader.GetScalarValue()); Assert.Equal( isFloat ? TokenKind.Float : TokenKind.Integer, reader.Kind); Assert.Equal(1, reader.Line); Assert.Equal(1, reader.Column); Assert.Equal(0, reader.Start); Assert.Equal(sourceBody.Length, reader.End); }
private void ReadToken_WithEscapedTrippleQuote2_EscapeIsReplacedWithActualQuotes() { // arrange byte[] source = Encoding.UTF8.GetBytes( "\"\"\"hello\\\"\"\"World_123\r\n\t\tfoo\r\n\tbar\"\"\""); var reader = new Utf8GraphQLReader(source); // act reader.Read(); // assert Assert.Equal( "hello\"\"\"World_123\n\tfoo\nbar", reader.GetString()); Assert.Equal(TokenKind.BlockString, reader.Kind); Assert.Equal(1, reader.Line); Assert.Equal(1, reader.Column); Assert.Equal(0, reader.Start); Assert.Equal(36, reader.End); }
private void InvalidDigit() { // arrange byte[] source = Encoding.UTF8.GetBytes("123.F"); var reader = new Utf8GraphQLReader(source); bool raised = false; // act try { reader.Read(); } catch (SyntaxException ex) { raised = true; ex.Message.MatchSnapshot(); } // assert Assert.True(raised); }
private void UnexpectedSyntaxException() { // arrange byte[] source = new byte[] { 187 }; var reader = new Utf8GraphQLReader(source); bool raised = false; // act try { reader.Read(); } catch (SyntaxException ex) { raised = true; ex.Message.MatchSnapshot(); } // assert Assert.True(raised); }
private void ReadToken_WithLeadingBlanks_BlanksAreRemoved() { // arrange byte[] source = Encoding.UTF8.GetBytes( "\"\"\"\r\n\t\r\n\t\r\n\thelloWorld_123" + "\r\n\t\tfoo\r\n\tbar\"\"\""); var reader = new Utf8GraphQLReader(source); // act reader.Read(); // assert Assert.Equal( "helloWorld_123\n\tfoo\nbar", reader.GetString()); Assert.Equal(TokenKind.BlockString, reader.Kind); Assert.Equal(1, reader.Line); Assert.Equal(1, reader.Column); Assert.Equal(0, reader.Start); Assert.Equal(41, reader.End); }