Example #1
0
        public void Setup()
        {
            reflectorMock    = new Mock <IReflector>();
            filterRunnerMock = new Mock <IFilterRunner>();
            filterRunnerMock             // make runfilters do nothiung
            .Setup(x => x.RunFilters(
                       It.IsAny <object>(),
                       It.IsAny <string[]>(),
                       It.IsAny <PropertyBag>(),
                       It.IsAny <IMarkupBase>()
                       ))
            .Returns((object o) => o);

            propertyBagMock = new Mock <IPropertyBag>();
            //propertyBagMock.Setup(x => x[It.IsAny<string>()]).Returns(null);

            interpretContextMock = new Mock <IInterpretContext>();
            interpretContextMock
            .SetupGet(x => x.Bag)
            .Returns(propertyBagMock.Object);

            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{markup}}",
                10,
                10
                );
        }
Example #2
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            ForEachTagMarkup tagMarkup        = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = ForEachTagParserRegex.Match(markup);

            if (m.Success)
            {
                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                {
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
                }

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression))
                {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                switch (tag.ToLower())
                {
                case "foreach":
                    if (expressionMarkup == null)
                    {
                        throw new ImpressionParseException("FOREACH Tag detected without expression", markup, lineNumber, charPos);
                    }

                    tagMarkup = new ForEachTagMarkup(
                        ForEachTagType.ForEach,
                        expressionMarkup,
                        markup,
                        lineNumber,
                        charPos
                        );

                    break;

                case "next":
                    tagMarkup = new ForEachTagMarkup(
                        ForEachTagType.Next,
                        null,
                        markup,
                        lineNumber,
                        charPos
                        );
                    break;
                }
            }

            if (tagMarkup == null)
            {
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
            }

            return(tagMarkup);
        }
 public void ConstructorThrowsArgumentNullExceptionForNullReflector()
 {
     markup = new ExpressionMarkup(
         null,
         filterRunnerMock.Object,
         "markup",
         10,
         10
     );
 }
Example #4
0
 public void ThrowsExceptionForBadmarkup()
 {
     markup = new ExpressionMarkup(
         reflectorMock.Object,
         filterRunnerMock.Object,
         "markup",
         10,
         10
         );
 }
Example #5
0
 public void ConstructorThrowsArgumentNullExceptionForNullFilterRunner()
 {
     markup = new ExpressionMarkup(
         reflectorMock.Object,
         null,
         "markup",
         10,
         10
         );
 }
        public void ParsesGoodMarkup()
        {
            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{markup}}",
                10,
                10
            );

            Assert.AreEqual("markup", markup.ObjectName);
            Assert.IsNull(markup.Properties);
            Assert.IsNull(markup.Within);
        }
Example #7
0
        public void ParsesGoodMarkup()
        {
            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{markup}}",
                10,
                10
                );

            Assert.AreEqual("markup", markup.ObjectName);
            Assert.IsNull(markup.Properties);
            Assert.IsNull(markup.Within);
        }
Example #8
0
        public void TestCanParseXEqualsYExpression()
        {
            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{ abc = xyz.prop1.prop2 }}",
                10,
                10
                );

            Assert.AreEqual("abc", markup.Within);
            Assert.AreEqual("xyz", markup.ObjectName);
            Assert.AreEqual(2, markup.Properties.Length);
            Assert.AreEqual("prop1", markup.Properties[0]);
            Assert.AreEqual("prop2", markup.Properties[1]);
        }
Example #9
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            VarTagMarkup     tagMarkup        = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = VarTagParserRegex.Match(markup);

            if (m.Success)
            {
                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                {
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
                }

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression))
                {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                tagMarkup = new VarTagMarkup(
                    expressionMarkup,
                    markup,
                    lineNumber,
                    charPos
                    );
            }

            if (tagMarkup == null)
            {
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
            }

            return(tagMarkup);
        }
Example #10
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            VarTagMarkup tagMarkup = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = VarTagParserRegex.Match(markup);
            if (m.Success) {

                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression)) {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                tagMarkup = new VarTagMarkup(
                    expressionMarkup,
                    markup,
                    lineNumber,
                    charPos
                );

            }

            if (tagMarkup == null)
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

            return tagMarkup;
        }
Example #11
0
 public VarTagMarkup(ExpressionMarkup expression, string markup, int lineNumber, int charPos)
     : base(expression, markup, lineNumber, charPos)
 {
 }
        public void Setup()
        {
            reflectorMock = new Mock<IReflector>();
            filterRunnerMock = new Mock<IFilterRunner>();
            filterRunnerMock // make runfilters do nothiung
                .Setup(x => x.RunFilters(
                    It.IsAny<object>(),
                    It.IsAny<string[]>(),
                    It.IsAny<PropertyBag>(),
                    It.IsAny<IMarkupBase>()
                ))
                .Returns((object o) => o);

            propertyBagMock = new Mock<IPropertyBag>();
            //propertyBagMock.Setup(x => x[It.IsAny<string>()]).Returns(null);

            interpretContextMock = new Mock<IInterpretContext>();
            interpretContextMock
                .SetupGet(x => x.Bag)
                .Returns(propertyBagMock.Object);

            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{markup}}",
                10,
                10
            );
        }
 public void ThrowsExceptionForBadmarkup()
 {
     markup = new ExpressionMarkup(
         reflectorMock.Object,
         filterRunnerMock.Object,
         "markup",
         10,
         10
     );
 }
Example #14
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            IfTagMarkup      tagMarkup        = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = IfTagParserRegex.Match(markup);

            if (m.Success)
            {
                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                {
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
                }

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression))
                {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                switch (tag.ToLower())
                {
                case "if":
                    if (expressionMarkup == null)
                    {
                        throw new ImpressionParseException("IF Tag detected without expression", markup, lineNumber, charPos);
                    }

                    tagMarkup = new IfTagMarkup(
                        IfTagType.If,
                        expressionMarkup,
                        markup,
                        lineNumber,
                        charPos
                        );

                    break;

                case "elseif":
                    if (expressionMarkup == null)
                    {
                        throw new ImpressionParseException("ELSEIF Tag detected without expression", markup, lineNumber, charPos);
                    }

                    tagMarkup = new IfTagMarkup(
                        IfTagType.ElseIf,
                        expressionMarkup,
                        markup,
                        lineNumber,
                        charPos
                        );

                    break;

                case "else":
                    tagMarkup = new IfTagMarkup(
                        IfTagType.Else,
                        null,
                        markup,
                        lineNumber,
                        charPos
                        );
                    break;

                case "endif":
                    tagMarkup = new IfTagMarkup(
                        IfTagType.EndIf,
                        null,
                        markup,
                        lineNumber,
                        charPos
                        );
                    break;
                }
            }

            if (tagMarkup == null)
            {
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);
            }

            return(tagMarkup);
        }
Example #15
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            IfTagMarkup tagMarkup = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = IfTagParserRegex.Match(markup);
            if (m.Success) {

                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression))
                {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                switch(tag.ToLower())
                {
                    case "if":
                        if (expressionMarkup == null)
                            throw new ImpressionParseException("IF Tag detected without expression", markup, lineNumber, charPos);

                        tagMarkup = new IfTagMarkup(
                            IfTagType.If,
                            expressionMarkup,
                            markup,
                            lineNumber,
                            charPos
                        );

                        break;

                    case "elseif":
                        if (expressionMarkup == null)
                            throw new ImpressionParseException("ELSEIF Tag detected without expression", markup, lineNumber, charPos);

                        tagMarkup = new IfTagMarkup(
                            IfTagType.ElseIf,
                            expressionMarkup,
                            markup,
                            lineNumber,
                            charPos
                        );

                        break;

                    case "else":
                        tagMarkup = new IfTagMarkup(
                            IfTagType.Else,
                            null,
                            markup,
                            lineNumber,
                            charPos
                        );
                        break;

                    case "endif":
                        tagMarkup = new IfTagMarkup(
                            IfTagType.EndIf,
                            null,
                            markup,
                            lineNumber,
                            charPos
                        );
                        break;
                }
            }

            if (tagMarkup == null)
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

            return tagMarkup;
        }
Example #16
0
 public VarTagMarkup(ExpressionMarkup expression, string markup, int lineNumber, int charPos)
     : base(expression, markup, lineNumber, charPos)
 {
 }
Example #17
0
        public TagMarkupBase ParseTag(string markup, int lineNumber, int charPos)
        {
            ForEachTagMarkup tagMarkup = null;
            ExpressionMarkup expressionMarkup = null;

            Match m = ForEachTagParserRegex.Match(markup);
            if (m.Success) {

                string tag = m.Groups["Tag"].Success ? m.Groups["Tag"].Value.Trim(): null;
                if (string.IsNullOrEmpty(tag))
                    throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

                string expression = m.Groups["Expression"].Success ? m.Groups["Expression"].Value.Trim() : null;
                if (!string.IsNullOrEmpty(expression))
                {
                    expressionMarkup = new ExpressionMarkup(reflector, filterRunner, expression, lineNumber, charPos);
                }

                switch(tag.ToLower())
                {
                    case "foreach":
                        if (expressionMarkup == null)
                            throw new ImpressionParseException("FOREACH Tag detected without expression", markup, lineNumber, charPos);

                        tagMarkup = new ForEachTagMarkup(
                            ForEachTagType.ForEach,
                            expressionMarkup,
                            markup,
                            lineNumber,
                            charPos
                        );

                        break;

                    case "next":
                        tagMarkup = new ForEachTagMarkup(
                            ForEachTagType.Next,
                            null,
                            markup,
                            lineNumber,
                            charPos
                        );
                        break;

                }
            }

            if (tagMarkup == null)
                throw new ImpressionParseException("Unsupported Tag Found", markup, lineNumber, charPos);

            return tagMarkup;
        }
        public void TestCanParseXEqualsYExpression()
        {
            markup = new ExpressionMarkup(
                reflectorMock.Object,
                filterRunnerMock.Object,
                "{{ abc = xyz.prop1.prop2 }}",
                10,
                10
            );

            Assert.AreEqual("abc", markup.Within);
            Assert.AreEqual("xyz", markup.ObjectName);
            Assert.AreEqual(2, markup.Properties.Length);
            Assert.AreEqual("prop1", markup.Properties[0]);
            Assert.AreEqual("prop2", markup.Properties[1]);
        }