コード例 #1
0
        public void ArgumentList_Simple()
        {
            TSQLTokenizer tokenizer = new TSQLTokenizer(
                "dostuff( 1 , 2 )")
            {
                IncludeWhitespace = true
            };

            Assert.IsTrue(tokenizer.MoveNext());
            Assert.AreEqual("dostuff", tokenizer.Current.Text);
            Assert.IsTrue(tokenizer.MoveNext());
            Assert.IsTrue(tokenizer.Current.IsCharacter(TSQLCharacters.OpenParentheses));
            Assert.IsTrue(tokenizer.MoveNext());

            TSQLArgumentList arguments = new TSQLArgumentListParser().Parse(tokenizer);

            Assert.IsTrue(tokenizer.Current.IsCharacter(TSQLCharacters.CloseParentheses));
            Assert.AreEqual(2, arguments.Count);

            Assert.AreEqual(2, arguments[0].Tokens.Count);
            Assert.AreEqual(TSQLExpressionType.Constant, arguments[0].Type);
            Assert.AreEqual(TSQLTokenType.NumericLiteral, arguments[0].AsConstant.Literal.Type);
            Assert.AreEqual(1, arguments[0].AsConstant.Literal.AsNumericLiteral.Value);

            Assert.AreEqual(2, arguments[1].Tokens.Count);
            Assert.AreEqual(TSQLExpressionType.Constant, arguments[1].Type);
            Assert.AreEqual(TSQLTokenType.NumericLiteral, arguments[1].AsConstant.Literal.Type);
            Assert.AreEqual(2, arguments[1].AsConstant.Literal.AsNumericLiteral.Value);

            TokenComparisons.CompareTokenLists(
                new List <TSQLToken>()
            {
                new TSQLWhitespace(8, " "),
                new TSQLNumericLiteral(9, "1"),
                new TSQLWhitespace(10, " "),
                new TSQLCharacter(11, ","),
                new TSQLWhitespace(12, " "),
                new TSQLNumericLiteral(13, "2"),
                new TSQLWhitespace(14, " ")
            },
                arguments.Tokens);
        }
コード例 #2
0
        public void ArgumentList_OnlySpaces()
        {
            TSQLTokenizer tokenizer = new TSQLTokenizer(
                "getdate( );")
            {
                IncludeWhitespace = true
            };

            Assert.IsTrue(tokenizer.MoveNext());
            Assert.AreEqual("getdate", tokenizer.Current.Text);
            Assert.IsTrue(tokenizer.MoveNext());
            Assert.IsTrue(tokenizer.Current.IsCharacter(TSQLCharacters.OpenParentheses));
            Assert.IsTrue(tokenizer.MoveNext());

            TSQLArgumentList arguments = new TSQLArgumentListParser().Parse(tokenizer);

            Assert.IsTrue(tokenizer.Current.IsCharacter(TSQLCharacters.CloseParentheses));
            Assert.AreEqual(0, arguments.Count);
            Assert.AreEqual(1, arguments.Tokens.Count);
        }