|
|
@@ -86,6 +86,77 @@ namespace Avalonia.Styling.UnitTests
|
|
|
Assert.Null(control.Tag);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Setter_Should_Apply_Value_Without_Activator_With_Style_Priority()
|
|
|
+ {
|
|
|
+ var control = new Mock<IStyleable>();
|
|
|
+ var style = Mock.Of<Style>();
|
|
|
+ var setter = new Setter(TextBlock.TextProperty, "foo");
|
|
|
+
|
|
|
+ setter.Apply(style, control.Object, null);
|
|
|
+
|
|
|
+ control.Verify(x => x.Bind(
|
|
|
+ TextBlock.TextProperty,
|
|
|
+ It.IsAny<IObservable<object>>(),
|
|
|
+ BindingPriority.Style));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Setter_Should_Apply_Value_With_Activator_With_StyleTrigger_Priority()
|
|
|
+ {
|
|
|
+ var control = new Mock<IStyleable>();
|
|
|
+ var style = Mock.Of<Style>();
|
|
|
+ var setter = new Setter(TextBlock.TextProperty, "foo");
|
|
|
+ var activator = new Subject<bool>();
|
|
|
+
|
|
|
+ setter.Apply(style, control.Object, activator);
|
|
|
+
|
|
|
+ control.Verify(x => x.Bind(
|
|
|
+ TextBlock.TextProperty,
|
|
|
+ It.IsAny<IObservable<object>>(),
|
|
|
+ BindingPriority.StyleTrigger));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Setter_Should_Apply_Binding_Without_Activator_With_Style_Priority()
|
|
|
+ {
|
|
|
+ var control = new Mock<IStyleable>();
|
|
|
+ var style = Mock.Of<Style>();
|
|
|
+ var setter = new Setter(TextBlock.TextProperty, CreateMockBinding(TextBlock.TextProperty));
|
|
|
+
|
|
|
+ setter.Apply(style, control.Object, null);
|
|
|
+
|
|
|
+ control.Verify(x => x.Bind(
|
|
|
+ TextBlock.TextProperty,
|
|
|
+ It.IsAny<IObservable<object>>(),
|
|
|
+ BindingPriority.Style));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Setter_Should_Apply_Binding_With_Activator_With_StyleTrigger_Priority()
|
|
|
+ {
|
|
|
+ var control = new Mock<IStyleable>();
|
|
|
+ var style = Mock.Of<Style>();
|
|
|
+ var setter = new Setter(TextBlock.TextProperty, CreateMockBinding(TextBlock.TextProperty));
|
|
|
+ var activator = new Subject<bool>();
|
|
|
+
|
|
|
+ setter.Apply(style, control.Object, activator);
|
|
|
+
|
|
|
+ control.Verify(x => x.Bind(
|
|
|
+ TextBlock.TextProperty,
|
|
|
+ It.IsAny<IObservable<object>>(),
|
|
|
+ BindingPriority.StyleTrigger));
|
|
|
+ }
|
|
|
+
|
|
|
+ private IBinding CreateMockBinding(AvaloniaProperty property)
|
|
|
+ {
|
|
|
+ var subject = new Subject<object>();
|
|
|
+ var descriptor = InstancedBinding.OneWay(subject);
|
|
|
+ var binding = Mock.Of<IBinding>(x =>
|
|
|
+ x.Initiate(It.IsAny<IAvaloniaObject>(), property, null, false) == descriptor);
|
|
|
+ return binding;
|
|
|
+ }
|
|
|
+
|
|
|
private class TestConverter : IValueConverter
|
|
|
{
|
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|