@ -2,26 +2,25 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System ;
using System.ComponentModel ;
using System.Collections.Generic ;
using System.Globalization ;
using System.Reactive.Linq ;
using Moq ;
using System.Threading ;
using Avalonia.Data ;
using Avalonia.Markup.Data ;
using Xunit ;
using System.Threading ;
using System.Collections.Generic ;
using Avalonia.UnitTests ;
using Moq ;
using Xunit ;
namespace Avalonia.Markup.UnitTests.Data
{
public class ExpressionSubject Tests
public class Binding ExpressionTests
{
[Fact]
public async void Should_Get_Simple_Property_Value ( )
{
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( string ) ) ;
var result = await target . Take ( 1 ) ;
Assert . Equal ( "foo" , result ) ;
@ -31,7 +30,7 @@ namespace Avalonia.Markup.UnitTests.Data
public void Should_Set_Simple_Property_Value ( )
{
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( string ) ) ;
target . OnNext ( "bar" ) ;
@ -44,7 +43,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = "5.6" } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var result = await target . Take ( 1 ) ;
Assert . Equal ( 5.6 , result ) ;
@ -54,7 +53,7 @@ namespace Avalonia.Markup.UnitTests.Data
public async void Getting_Invalid_Double_String_Should_Return_BindingError ( )
{
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var result = await target . Take ( 1 ) ;
Assert . IsType < BindingNotification > ( result ) ;
@ -64,7 +63,7 @@ namespace Avalonia.Markup.UnitTests.Data
public async void Should_Coerce_Get_Null_Double_String_To_UnsetValue ( )
{
var data = new Class1 { StringValue = null } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var result = await target . Take ( 1 ) ;
Assert . Equal ( AvaloniaProperty . UnsetValue , result ) ;
@ -76,7 +75,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = ( 5.6 ) . ToString ( ) } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "StringValue" ) , typeof ( double ) ) ;
target . OnNext ( 6.7 ) ;
@ -89,7 +88,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var result = await target . Take ( 1 ) ;
Assert . Equal ( ( 5.6 ) . ToString ( ) , result ) ;
@ -101,7 +100,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
target . OnNext ( "6.7" ) ;
@ -114,7 +113,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "StringValue" ) ,
typeof ( int ) ,
4 2 ,
@ -135,7 +134,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "StringValue" , true ) ,
typeof ( int ) ,
4 2 ,
@ -156,7 +155,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "StringValue" ) ,
typeof ( int ) ,
"bar" ,
@ -178,7 +177,7 @@ namespace Avalonia.Markup.UnitTests.Data
Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
var data = new Class1 { StringValue = "foo" } ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "StringValue" , true ) ,
typeof ( int ) ,
"bar" ,
@ -198,7 +197,7 @@ namespace Avalonia.Markup.UnitTests.Data
public void Setting_Invalid_Double_String_Should_Not_Change_Target ( )
{
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
target . OnNext ( "foo" ) ;
@ -209,7 +208,7 @@ namespace Avalonia.Markup.UnitTests.Data
public void Setting_Invalid_Double_String_Should_Use_FallbackValue ( )
{
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "DoubleValue" ) ,
typeof ( string ) ,
"9.8" ,
@ -224,7 +223,7 @@ namespace Avalonia.Markup.UnitTests.Data
public void Should_Coerce_Setting_Null_Double_To_Default_Value ( )
{
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
target . OnNext ( null ) ;
@ -235,7 +234,7 @@ namespace Avalonia.Markup.UnitTests.Data
public void Should_Coerce_Setting_UnsetValue_Double_To_Default_Value ( )
{
var data = new Class1 { DoubleValue = 5.6 } ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" ) , typeof ( string ) ) ;
target . OnNext ( AvaloniaProperty . UnsetValue ) ;
@ -247,7 +246,7 @@ namespace Avalonia.Markup.UnitTests.Data
{
var data = new Class1 { DoubleValue = 5.6 } ;
var converter = new Mock < IValueConverter > ( ) ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "DoubleValue" ) ,
typeof ( string ) ,
converter . Object ,
@ -263,7 +262,7 @@ namespace Avalonia.Markup.UnitTests.Data
{
var data = new Class1 { DoubleValue = 5.6 } ;
var converter = new Mock < IValueConverter > ( ) ;
var target = new ExpressionSubject (
var target = new Binding Expression(
new ExpressionObserver ( data , "DoubleValue" ) ,
typeof ( string ) ,
converter . Object ,
@ -279,7 +278,7 @@ namespace Avalonia.Markup.UnitTests.Data
{
var data = new Class1 { DoubleValue = 5.6 } ;
var converter = new Mock < IValueConverter > ( ) ;
var target = new ExpressionSubject ( new ExpressionObserver ( data , "DoubleValue" , true ) , typeof ( string ) ) ;
var target = new Binding Expression( new ExpressionObserver ( data , "DoubleValue" , true ) , typeof ( string ) ) ;
var result = new List < object > ( ) ;
target . Subscribe ( x = > result . Add ( x ) ) ;