Пример #1
0
        public void BeginExpression_WhenGivenAToken_PushesExpressionNode()
        {
            // Arrange:
            var token = new Token {
                TokenKind = TokenKind.String, Image = "<T>"
            };
            var stack = new Stack <IAstNode>();

            stack.Push(_nodeFactoryMock.Object.Create(AstNodeType.Syntax, token));
            var builder = new AstBuilder(_nodeFactoryMock.Object, _prodInfoFactoryMock.Object, stack, _tracerMock.Object);

            // Act:
            builder.BeginExpression(token);

            // Assert:
            Assert.That(stack.Count, Is.EqualTo(2));
            Assert.That(stack.Peek(), Is.InstanceOf(typeof(IExpressionNode)));
            Assert.That((stack.Peek() as IExpressionNode)?.Image, Is.EqualTo(token.Image));
            Assert.That((stack.Peek() as IExpressionNode)?.Terms.Count, Is.EqualTo(0));
        }