コード例 #1
0
ファイル: BindingGrammarTester.cs プロジェクト: adzerk/spark
        public void MixedResultsComeBackAtTheRightPlaces()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("Html.ActionLink(@caption, @action)"));

            Assert.That(result.Value.Count(), Is.EqualTo(5));

            Assert.That(((BindingLiteral)result.Value[0]).Text, Is.EqualTo("Html.ActionLink("));
            Assert.That(((BindingNameReference)result.Value[1]).Name, Is.EqualTo("caption"));
            Assert.That(((BindingLiteral)result.Value[2]).Text, Is.EqualTo(", "));
            Assert.That(((BindingNameReference)result.Value[3]).Name, Is.EqualTo("action"));
            Assert.That(((BindingLiteral)result.Value[4]).Text, Is.EqualTo(")"));
        }
コード例 #2
0
ファイル: BindingProvider.cs プロジェクト: adzerk/spark
        public IEnumerable<Binding> LoadStandardMarkup(TextReader reader)
        {
            var document = XDocument.Load(reader);
            var elements = document.Elements("bindings").Elements("element");

            var grammar = new BindingGrammar();
            var bindings = elements.Select(
                element =>
                new Binding
                    {
                        ElementName = (string) element.Attribute("name"),
                        Nodes = grammar.Nodes(new Position(new SourceContext(element.Value))).Value
                    });

            return bindings;
        }
コード例 #3
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void BothBracesMustBePresentToMatch()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("a{{@*@hello*}}b"));

            Assert.That(result.Value.Count(), Is.EqualTo(4));
            var a = (BindingLiteral)result.Value[0];
            var match1 = (BindingPrefixReference)result.Value[1];
            var match2 = (BindingPrefixReference)result.Value[2];
            var b = (BindingLiteral)result.Value[3];

            Assert.That(a.Text, Is.EqualTo("a{{"));
            Assert.That(b.Text, Is.EqualTo("}}b"));
            Assert.That(match1.Prefix, Is.Null);
            Assert.That(match2.Prefix, Is.EqualTo("hello"));
            Assert.That(match1.AssumeDictionarySyntax, Is.False);
            Assert.That(match2.AssumeDictionarySyntax, Is.False);
        }
コード例 #4
0
ファイル: BindingGrammarTester.cs プロジェクト: adzerk/spark
        public void OptionalQuotesMarkAssumeStringValueAsTrue()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("@one'@two'\"@three\"@four.*'@five.*'\"@six.*\""));
            Assert.That(result.Value.Count(), Is.EqualTo(6));
            var one = (BindingNameReference)result.Value[0];
            var two = (BindingNameReference)result.Value[1];
            var three = (BindingNameReference)result.Value[2];
            var four = (BindingPrefixReference)result.Value[3];
            var five = (BindingPrefixReference)result.Value[4];
            var six = (BindingPrefixReference)result.Value[5];

            Assert.That(one.AssumeStringValue, Is.False);
            Assert.That(two.AssumeStringValue, Is.True);
            Assert.That(three.AssumeStringValue, Is.True);
            Assert.That(four.AssumeStringValue, Is.False);
            Assert.That(five.AssumeStringValue, Is.True);
            Assert.That(six.AssumeStringValue, Is.True);
        }
コード例 #5
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void BracesMayAppearAroundStrings()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("a{{'@*'}}{{\"@hello*\"}}b"));

            Assert.That(result.Value.Count(), Is.EqualTo(4));
            var a = (BindingLiteral)result.Value[0];
            var match1 = (BindingPrefixReference)result.Value[1];
            var match2 = (BindingPrefixReference)result.Value[2];
            var b = (BindingLiteral)result.Value[3];

            Assert.That(a.Text, Is.EqualTo("a"));
            Assert.That(b.Text, Is.EqualTo("b"));
            Assert.That(match1.Prefix, Is.Null);
            Assert.That(match2.Prefix, Is.EqualTo("hello"));
            Assert.That(match1.AssumeDictionarySyntax, Is.True);
            Assert.That(match2.AssumeDictionarySyntax, Is.True);
            Assert.That(match1.AssumeStringValue, Is.True);
            Assert.That(match2.AssumeStringValue, Is.True);
        }
コード例 #6
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void PrefixLetsYouWildcardAsTheLastCharacter()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("Html.ActionLink(@caption.**, @**)"));

            Assert.That(result.Value.Count(), Is.EqualTo(5));

            Assert.That(((BindingLiteral)result.Value[0]).Text, Is.EqualTo("Html.ActionLink("));
            Assert.That(((BindingPrefixReference)result.Value[1]).Prefix, Is.EqualTo("caption."));
            Assert.That(((BindingLiteral)result.Value[2]).Text, Is.EqualTo("*, "));
            Assert.That(((BindingPrefixReference)result.Value[3]).Prefix ?? "", Is.EqualTo(""));
            Assert.That(((BindingLiteral)result.Value[4]).Text, Is.EqualTo("*)"));
        }
コード例 #7
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void DoubleSquareBracketIsAliasForAngleBracket()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("this[[that]]"));

            Assert.That(result.Value.Count(), Is.EqualTo(1));
            var node = (BindingLiteral)result.Value[0];

            Assert.That(node.Text, Is.EqualTo("this<that>"));
        }
コード例 #8
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void CurleyBracesAroundWildcardIndicateDictionaryInitializingSyntax()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("a{{@*}}{{@hello*}}b"));

            Assert.That(result.Value.Count(), Is.EqualTo(4));
            var a = (BindingLiteral)result.Value[0];
            var match1 = (BindingPrefixReference)result.Value[1];
            var match2 = (BindingPrefixReference)result.Value[2];
            var b = (BindingLiteral)result.Value[3];

            Assert.That(a.Text, Is.EqualTo("a"));
            Assert.That(b.Text, Is.EqualTo("b"));
            Assert.That(match1.Prefix, Is.Null);
            Assert.That(match2.Prefix, Is.EqualTo("hello"));
            Assert.That(match1.AssumeDictionarySyntax, Is.True);
            Assert.That(match2.AssumeDictionarySyntax, Is.True);
            Assert.That(match1.AssumeStringValue, Is.False);
            Assert.That(match2.AssumeStringValue, Is.False);
        }
コード例 #9
0
ファイル: BindingGrammarTester.cs プロジェクト: aloker/spark
        public void ChildContentCanAppearWithOrWithoutQuotes()
        {
            var grammar = new BindingGrammar();
            var result = grammar.Nodes(Source("achild::*b'child::*'c\"child::*\"d"));
            Assert.That(result.Value.Count(), Is.EqualTo(7));
            var a = (BindingLiteral)result.Value[0];
            var child1 = (BindingChildReference)result.Value[1];
            var b = (BindingLiteral)result.Value[2];
            var child2 = (BindingChildReference)result.Value[3];
            var c = (BindingLiteral)result.Value[4];
            var child3 = (BindingChildReference)result.Value[5];
            var d = (BindingLiteral)result.Value[6];

            Assert.That(a.Text, Is.EqualTo("a"));
            Assert.That(b.Text, Is.EqualTo("b"));
            Assert.That(c.Text, Is.EqualTo("c"));
            Assert.That(d.Text, Is.EqualTo("d"));
            Assert.That(child1, Is.Not.Null);
            Assert.That(child2, Is.Not.Null);
            Assert.That(child3, Is.Not.Null);
        }