Browse Source

Added failing test for #1218

pull/1233/head
Steven Kirk 9 years ago
parent
commit
ca7584ce3f
  1. 37
      tests/Avalonia.Styling.UnitTests/SetterTests.cs

37
tests/Avalonia.Styling.UnitTests/SetterTests.cs

@ -8,6 +8,9 @@ using Avalonia.Data;
using Xunit;
using System;
using Avalonia.Controls.Templates;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup;
using System.Globalization;
namespace Avalonia.Styling.UnitTests
{
@ -61,5 +64,39 @@ namespace Avalonia.Styling.UnitTests
Assert.NotNull(NameScope.GetNameScope((Control)control.Child));
}
[Fact]
public void Does_Not_Call_Converter_ConvertBack_On_OneWay_Binding()
{
var control = new Decorator { Name = "foo" };
var style = Mock.Of<IStyle>();
var binding = new Binding("Name", BindingMode.OneWay)
{
Converter = new TestConverter(),
RelativeSource = new RelativeSource(RelativeSourceMode.Self),
};
var setter = new Setter(Decorator.TagProperty, binding);
var activator = new BehaviorSubject<bool>(true);
setter.Apply(style, control, activator);
Assert.Equal("foobar", control.Tag);
// Issue #1218 caused TestConverter.ConvertBack to throw here.
activator.OnNext(false);
Assert.Null(control.Tag);
}
private class TestConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString() + "bar";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
}

Loading…
Cancel
Save