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); }
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); }
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); }
public void Parse_SingleOpenBrace_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act target.Parse("{"); }
public void Parse_NoTypeNameWithWhiteSpace_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act target.Parse("{ }"); }
public void Parse_WhitespaceSource_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act target.Parse(new string(' ', 10)); }
public void Parse_ArbitraryString_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act target.Parse("arbitrary string"); }
public void Parse_EmptySource_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act target.Parse(string.Empty); }
public void Parse_NullSource_Throws() { // Arrange var target = MarkupExtensionParserTests.CreateTarget(); // Act // ReSharper disable AssignNullToNotNullAttribute target.Parse(null); // ReSharper restore AssignNullToNotNullAttribute }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }