summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.UnitTests/EntryCellTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/EntryCellTests.cs')
-rw-r--r--Xamarin.Forms.Core.UnitTests/EntryCellTests.cs82
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