Example #1
0
        public void TryParse_ComplexBinding2_ParsesAsExpected()
        {
            // Arrange
            var markup =
                @"{Binding 
    Items, 
    Source={d:DesignInstance
        IsDesignTimeCreatable=True,
        Type=ViewModels:AppHubViewModel}}";

            var expected = new MarkupExensionInfoBuilder("Binding")
                           .AddArgument("Items")
                           .BeginNested("d:DesignInstance")
                           .AddArgument("IsDesignTimeCreatable", "True")
                           .AddArgument("Type", "ViewModels:AppHubViewModel")
                           .EndNested("Source")
                           .Build();

            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo actual;
            var result = target.TryParse(markup, out actual);

            // Assert
            Assert.IsTrue(result);
            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void Parse_MultipleUnNestedBindings_ParsesAsExpected()
        {
            // Arrange
            var markup =
                @"{Binding
    Arg1,
    Arg2,
    {}{0} Ooo what a nasty string,
    'stob your gabbin\' boy',
    StringFormat={     }{0} Foobar,
    'QuotedMember=Name'=Jake & Juno}";

            var expected = new MarkupExensionInfoBuilder("Binding")
                           .AddArgument("Arg1")
                           .AddArgument("Arg2")
                           .AddArgument("{}{0} Ooo what a nasty string")
                           .AddArgument(null, "stob your gabbin' boy", true)
                           .AddArgument("StringFormat", "{     }{0} Foobar")
                           .AddArgument("QuotedMember=Name", "Jake & Juno")
                           .Build();

            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            var actual = target.Parse(markup);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Example #3
0
        public void TryParse_ComplexBinding1_ParsesAsExpected()
        {
            // Arrange
            var markup =
                @"{Binding
    Path=Foo,
    ElementName={Binding
        Path=DataContext.Girrafe,
        Converter={StaticResource GirrafeConverter}},
    Source={StaticResource Items}}";

            var expected = new MarkupExensionInfoBuilder("Binding")
                           .AddArgument("Path", "Foo")
                           .BeginNested("Binding")
                           .AddArgument("Path", "DataContext.Girrafe")
                           .BeginNested("StaticResource")
                           .AddArgument("GirrafeConverter")
                           .EndNested("Converter")
                           .EndNested("ElementName")
                           .BeginNested("StaticResource")
                           .AddArgument("Items")
                           .EndNested("Source")
                           .Build();

            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo actual;
            var result = target.TryParse(markup, out actual);

            // Assert
            Assert.IsTrue(result);
            Assert.AreEqual(expected, actual);
        }
Example #4
0
        public void Parse_StringFormat_ParsesAsExpected()
        {
            // Arrange
            var markup   = "{Binding StringFormat={}{0} Foobar}";
            var expected = new MarkupExensionInfoBuilder("Binding").AddArgument("StringFormat", "{}{0} Foobar").Build();
            var target   = MarkupExtensionParserTests.CreateTarget();

            // Act
            var actual = target.Parse(markup);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Example #5
0
        public void Parse_SinglePositionalQuotedNestedStringArgumentWithWhitespace_ParsesAsExpected()
        {
            // Arrange
            var markup   = "{     Binding   '   {    Nested    }     '}";
            var expected = new MarkupExensionInfoBuilder("Binding").BeginNested("Nested").EndNested(null, true).Build();
            var target   = MarkupExtensionParserTests.CreateTarget();

            // Act
            var actual = target.Parse(markup);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Example #6
0
        public void Parse_SinglePositionalQuotedStringArgument_ParsesAsExpected()
        {
            // Arrange
            var markup   = "{Binding '.'}";
            var expected = new MarkupExensionInfoBuilder("Binding").AddArgument(null, ".", true).Build();
            var target   = MarkupExtensionParserTests.CreateTarget();

            // Act
            var actual = target.Parse(markup);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Example #7
0
        public void Parse_TypeNameOnlyWithTrailingWhitespace_ParsesAsExpected()
        {
            // Arrange
            var markup   = "{Binding   }";
            var expected = new MarkupExensionInfoBuilder("Binding").Build();
            var target   = MarkupExtensionParserTests.CreateTarget();

            // Act
            var actual = target.Parse(markup);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Example #8
0
        public void Parse_TypeNameHasColon_ParsesAsExpected()
        {
            // Arrange
            var markup = @"{d:DesignInstance}";

            var expected = new MarkupExensionInfoBuilder("d:DesignInstance").Build();

            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo actual;
            var result = target.TryParse(markup, out actual);

            // Assert
            Assert.IsTrue(result);
            Assert.AreEqual(expected, actual);
        }