Browse Source

Added failing tests for #2470.

pull/2486/head
Steven Kirk 7 years ago
parent
commit
d22282c151
  1. 22
      tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
  2. 29
      tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs

22
tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs

@ -100,6 +100,28 @@ namespace Avalonia.Markup.UnitTests.Data
Assert.Equal("baz", target.Text);
}
[Fact]
public void OneWayToSource_Binding_Should_React_To_DataContext_Changed()
{
var target = new TextBlock { Text = "bar" };
var binding = new Binding
{
Path = "Foo",
Mode = BindingMode.OneWayToSource,
};
target.Bind(TextBox.TextProperty, binding);
var source = new Source { Foo = "foo" };
target.DataContext = source;
Assert.Equal("bar", source.Foo);
target.Text = "baz";
Assert.Equal("baz", source.Foo);
source.Foo = "quz";
Assert.Equal("baz", target.Text);
}
[Fact]
public void Default_BindingMode_Should_Be_Used()
{

29
tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs

@ -329,6 +329,33 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal("Hello world", textBlock.Text);
}
}
}
[Fact]
public void Binding_OneWayToSource_Works()
{
using (UnitTestApplication.Start(TestServices.StyledWindow))
{
var xaml = @"
<Window xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
ShowInTaskbar='{Binding ShowInTaskbar, Mode=OneWayToSource}'>
</Window>";
var loader = new AvaloniaXamlLoader();
var window = (Window)loader.Load(xaml);
var viewModel = new WindowViewModel();
window.DataContext = viewModel;
window.ApplyTemplate();
Assert.True(window.ShowInTaskbar);
Assert.True(viewModel.ShowInTaskbar);
}
}
private class WindowViewModel
{
public bool ShowInTaskbar { get; set; }
}
}
}

Loading…
Cancel
Save