| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Copyright (c) The Avalonia Project. All rights reserved.
- // Licensed under the MIT license. See licence.md file in the project root for full license information.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reactive.Linq;
- using Avalonia.Controls;
- using Avalonia.Data;
- using Avalonia.Markup.Data;
- using Avalonia.Markup.Xaml.Data;
- using Moq;
- using ReactiveUI;
- using Xunit;
- namespace Avalonia.Markup.Xaml.UnitTests.Data
- {
- public class BindingTests_DataValidation
- {
- [Fact]
- public void Initiate_Should_Not_Enable_Data_Validation_With_BindingPriority_LocalValue()
- {
- var textBlock = new TextBlock
- {
- DataContext = new Class1(),
- };
- var target = new Binding(nameof(Class1.Foo));
- var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: false);
- var subject = (ExpressionSubject)instanced.Subject;
- object result = null;
- subject.Subscribe(x => result = x);
- Assert.IsType<string>(result);
- }
- [Fact]
- public void Initiate_Should_Enable_Data_Validation_With_BindingPriority_LocalValue()
- {
- var textBlock = new TextBlock
- {
- DataContext = new Class1(),
- };
- var target = new Binding(nameof(Class1.Foo));
- var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: true);
- var subject = (ExpressionSubject)instanced.Subject;
- object result = null;
- subject.Subscribe(x => result = x);
- Assert.Equal(new BindingNotification("foo"), result);
- }
- [Fact]
- public void Initiate_Should_Not_Enable_Data_Validation_With_BindingPriority_TemplatedParent()
- {
- var textBlock = new TextBlock
- {
- DataContext = new Class1(),
- };
- var target = new Binding(nameof(Class1.Foo)) { Priority = BindingPriority.TemplatedParent };
- var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: true);
- var subject = (ExpressionSubject)instanced.Subject;
- object result = null;
- subject.Subscribe(x => result = x);
- Assert.IsType<string>(result);
- }
- private class Class1
- {
- public string Foo { get; set; } = "foo";
- }
- }
- }
|