public void TestEmptyComment() { var tokenizer = new SqlTokenizer("WHERE /**/ Id = 1"); var tokens = tokenizer.Tokenize(); Assert.Equal(5, tokens.Count); Assert.Equal(TokenType.Block, tokens[0].TokenType); Assert.Equal("WHERE", tokens[0].Value); Assert.Equal(TokenType.Comment, tokens[1].TokenType); Assert.Equal(string.Empty, tokens[1].Value); Assert.Equal(TokenType.Block, tokens[2].TokenType); Assert.Equal("Id", tokens[2].Value); Assert.Equal(TokenType.Block, tokens[3].TokenType); Assert.Equal("=", tokens[3].Value); Assert.Equal(TokenType.Block, tokens[4].TokenType); Assert.Equal("1", tokens[4].Value); }
public void TestIn() { var tokenizer = new SqlTokenizer("IN /*@ ids */ ('1', '2')"); var tokens = tokenizer.Tokenize(); Assert.Equal(7, tokens.Count); Assert.Equal(TokenType.Block, tokens[0].TokenType); Assert.Equal("IN", tokens[0].Value); Assert.Equal(TokenType.Comment, tokens[1].TokenType); Assert.Equal("@ ids", tokens[1].Value); Assert.Equal(TokenType.OpenParenthesis, tokens[2].TokenType); Assert.Equal("(", tokens[2].Value); Assert.Equal(TokenType.Block, tokens[3].TokenType); Assert.Equal("'1'", tokens[3].Value); Assert.Equal(TokenType.Comma, tokens[4].TokenType); Assert.Equal(",", tokens[4].Value); Assert.Equal(TokenType.Block, tokens[5].TokenType); Assert.Equal("'2'", tokens[5].Value); Assert.Equal(TokenType.CloseParenthesis, tokens[6].TokenType); Assert.Equal(")", tokens[6].Value); }
public void TestInsert() { var tokenizer = new SqlTokenizer( "INSERT INTO Data (Id, Name) VALUES (/*@ id */1, /*@ name */'name')"); var tokens = tokenizer.Tokenize(); Assert.Equal(16, tokens.Count); Assert.Equal(TokenType.Block, tokens[0].TokenType); Assert.Equal("INSERT", tokens[0].Value); Assert.Equal(TokenType.Block, tokens[1].TokenType); Assert.Equal("INTO", tokens[1].Value); Assert.Equal(TokenType.Block, tokens[2].TokenType); Assert.Equal("Data", tokens[2].Value); Assert.Equal(TokenType.OpenParenthesis, tokens[3].TokenType); Assert.Equal("(", tokens[3].Value); Assert.Equal(TokenType.Block, tokens[4].TokenType); Assert.Equal("Id", tokens[4].Value); Assert.Equal(TokenType.Comma, tokens[5].TokenType); Assert.Equal(",", tokens[5].Value); Assert.Equal(TokenType.Block, tokens[6].TokenType); Assert.Equal("Name", tokens[6].Value); Assert.Equal(TokenType.CloseParenthesis, tokens[7].TokenType); Assert.Equal(")", tokens[7].Value); Assert.Equal(TokenType.Block, tokens[8].TokenType); Assert.Equal("VALUES", tokens[8].Value); Assert.Equal(TokenType.OpenParenthesis, tokens[9].TokenType); Assert.Equal("(", tokens[9].Value); Assert.Equal(TokenType.Comment, tokens[10].TokenType); Assert.Equal("@ id", tokens[10].Value); Assert.Equal(TokenType.Block, tokens[11].TokenType); Assert.Equal("1", tokens[11].Value); Assert.Equal(TokenType.Comma, tokens[12].TokenType); Assert.Equal(",", tokens[12].Value); Assert.Equal(TokenType.Comment, tokens[13].TokenType); Assert.Equal("@ name", tokens[13].Value); Assert.Equal(TokenType.Block, tokens[14].TokenType); Assert.Equal("'name'", tokens[14].Value); Assert.Equal(TokenType.CloseParenthesis, tokens[15].TokenType); Assert.Equal(")", tokens[15].Value); }
public void TestCommentNotClosed() { var tokenizer = new SqlTokenizer("WHERE /* comment"); Assert.Throws <SqlTokenizerException>(() => tokenizer.Tokenize()); }
public void TestQuoteEscapedNotClosed() { var tokenizer = new SqlTokenizer("Name = 'abc''xyz''"); Assert.Throws <SqlTokenizerException>(() => tokenizer.Tokenize()); }