Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public void TestCommentNotClosed()
        {
            var tokenizer = new SqlTokenizer("WHERE /* comment");

            Assert.Throws <SqlTokenizerException>(() => tokenizer.Tokenize());
        }
Ejemplo n.º 5
0
        public void TestQuoteEscapedNotClosed()
        {
            var tokenizer = new SqlTokenizer("Name = 'abc''xyz''");

            Assert.Throws <SqlTokenizerException>(() => tokenizer.Tokenize());
        }