diff options
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/EntryCellTests.cs')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/EntryCellTests.cs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/EntryCellTests.cs b/Xamarin.Forms.Core.UnitTests/EntryCellTests.cs new file mode 100644 index 00000000..34b7b663 --- /dev/null +++ b/Xamarin.Forms.Core.UnitTests/EntryCellTests.cs @@ -0,0 +1,82 @@ +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)); + } + } + } +}
\ No newline at end of file |