82 строки
2.3 KiB
C#
82 строки
2.3 KiB
C#
|
using System.ComponentModel;
|
||
|
using System.Runtime.CompilerServices;
|
||
|
using NUnit.Framework;
|
||
|
|
||
|
namespace Xamarin.Forms.Core.UnitTests
|
||
|
{
|
||
|
[TestFixture]
|
||
|
public class EntryCellTests : BaseTestFixture
|
||
|
{
|
||
|
[SetUp]
|
||
|
public override void Setup()
|
||
|
{
|
||
|
base.Setup ();
|
||
|
Device.PlatformServices = new MockPlatformServices ();
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void ChangingHorizontalTextAlignmentFiresXAlignChanged ()
|
||
|
{
|
||
|
var entryCell = new EntryCell { HorizontalTextAlignment = TextAlignment.Center };
|
||
|
|
||
|
var xAlignFired = false;
|
||
|
var horizontalTextAlignmentFired = false;
|
||
|
|
||
|
entryCell.PropertyChanged += (sender, args) => {
|
||
|
if (args.PropertyName == "XAlign") {
|
||
|
xAlignFired = true;
|
||
|
} else if (args.PropertyName == EntryCell.HorizontalTextAlignmentProperty.PropertyName) {
|
||
|
horizontalTextAlignmentFired = true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
entryCell.HorizontalTextAlignment = TextAlignment.End;
|
||
|
|
||
|
Assert.True(xAlignFired);
|
||
|
Assert.True(horizontalTextAlignmentFired);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void EntryCellXAlignBindingMatchesHorizontalTextAlignmentBinding ()
|
||
|
{
|
||
|
var vm = new ViewModel ();
|
||
|
vm.Alignment = TextAlignment.Center;
|
||
|
|
||
|
var entryCellXAlign = new EntryCell () { BindingContext = vm };
|
||
|
entryCellXAlign.SetBinding (EntryCell.XAlignProperty, new Binding ("Alignment"));
|
||
|
|
||
|
var entryCellHorizontalTextAlignment = new EntryCell () { BindingContext = vm };
|
||
|
entryCellHorizontalTextAlignment.SetBinding (EntryCell.HorizontalTextAlignmentProperty, new Binding ("Alignment"));
|
||
|
|
||
|
Assert.AreEqual (TextAlignment.Center, entryCellXAlign.XAlign);
|
||
|
Assert.AreEqual (TextAlignment.Center, entryCellHorizontalTextAlignment.HorizontalTextAlignment);
|
||
|
|
||
|
vm.Alignment = TextAlignment.End;
|
||
|
|
||
|
Assert.AreEqual (TextAlignment.End, entryCellXAlign.XAlign);
|
||
|
Assert.AreEqual (TextAlignment.End, entryCellHorizontalTextAlignment.HorizontalTextAlignment);
|
||
|
}
|
||
|
|
||
|
sealed class ViewModel : INotifyPropertyChanged
|
||
|
{
|
||
|
TextAlignment alignment;
|
||
|
|
||
|
public TextAlignment Alignment
|
||
|
{
|
||
|
get { return alignment; }
|
||
|
set
|
||
|
{
|
||
|
alignment = value;
|
||
|
OnPropertyChanged();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||
|
|
||
|
void OnPropertyChanged ([CallerMemberName] string propertyName = null)
|
||
|
{
|
||
|
PropertyChanged?.Invoke (this, new PropertyChangedEventArgs (propertyName));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|