Exemplo n.º 1
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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        public void Parse_SingleOpenBrace_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            target.Parse("{");
        }
Exemplo n.º 5
0
        public void Parse_NoTypeNameWithWhiteSpace_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            target.Parse("{  }");
        }
Exemplo n.º 6
0
        public void Parse_WhitespaceSource_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            target.Parse(new string(' ', 10));
        }
Exemplo n.º 7
0
        public void Parse_ArbitraryString_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            target.Parse("arbitrary string");
        }
Exemplo n.º 8
0
        public void Parse_EmptySource_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            target.Parse(string.Empty);
        }
Exemplo n.º 9
0
        public void Parse_NullSource_Throws()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            // ReSharper disable AssignNullToNotNullAttribute
            target.Parse(null);
            // ReSharper restore AssignNullToNotNullAttribute
        }
Exemplo n.º 10
0
        public void TryParse_EmptySource_False()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo info;
            var result = target.TryParse(string.Empty, out info);

            // Assert
            Assert.IsFalse(result);
        }
Exemplo n.º 11
0
        public void TryParse_WhitespaceSource_False()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo info;
            var result = target.TryParse(new string(' ', 10), out info);

            // Assert
            Assert.IsFalse(result);
        }
Exemplo n.º 12
0
        public void TryParse_ArbitraryString_False()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            IMarkupExtensionInfo info;
            var result = target.TryParse("arbitrary string", out info);

            // Assert
            Assert.IsFalse(result);
        }
Exemplo n.º 13
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);
        }
Exemplo n.º 14
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);
        }
Exemplo n.º 15
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);
        }
Exemplo n.º 16
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);
        }
Exemplo n.º 17
0
        public void TryParse_NullSource_False()
        {
            // Arrange
            var target = MarkupExtensionParserTests.CreateTarget();

            // Act
            // ReSharper disable AssignNullToNotNullAttribute
            IMarkupExtensionInfo info;
            var result = target.TryParse(null, out info);

            // ReSharper restore AssignNullToNotNullAttribute

            // Assert
            Assert.IsFalse(result);
        }
Exemplo n.º 18
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);
        }