diff options
author | Eric Maupin <ermaup@microsoft.com> | 2017-10-19 20:06:44 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2017-10-19 20:06:44 +0300 |
commit | 87a980dd76d4c03b45feb52fd26ce2418e354208 (patch) | |
tree | 88e659871aab8b7f207721475d50fddcf8ecf4b0 /Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs | |
parent | 876040e6b5e95d4cb658158d3305a6871bb58f3f (diff) |
[Core] Add Point/Size VMs
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs')
-rw-r--r-- | Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs b/Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs new file mode 100644 index 0000000..2e6f198 --- /dev/null +++ b/Xamarin.PropertyEditing.Tests/SizeViewModelTests.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using NUnit.Framework; +using Xamarin.PropertyEditing.Drawing; +using Xamarin.PropertyEditing.ViewModels; + +namespace Xamarin.PropertyEditing.Tests +{ + internal class SizeViewModelTests + : PropertyViewModelTests<CommonSize, SizePropertyViewModel> + { + [Test] + public void Width () + { + var property = GetPropertyMock (); + var editor = GetBasicEditor (property.Object); + var vm = GetViewModel (property.Object, new[] { editor }); + Assume.That (vm.Value, Is.EqualTo (new CommonSize (0, 0))); + + bool xChanged = false, valueChanged = false; + vm.PropertyChanged += (sender, args) => { + if (args.PropertyName == nameof(SizePropertyViewModel.Width)) + xChanged = true; + if (args.PropertyName == nameof(SizePropertyViewModel.Value)) + valueChanged = true; + }; + + vm.Width = 5; + Assert.That (vm.Value.Width, Is.EqualTo (5)); + Assert.That (xChanged, Is.True); + Assert.That (valueChanged, Is.True); + } + + [Test] + public void Height () + { + var property = GetPropertyMock (); + var editor = GetBasicEditor (property.Object); + var vm = GetViewModel (property.Object, new[] { editor }); + Assume.That (vm.Value, Is.EqualTo (new CommonSize (0, 0))); + + bool yChanged = false, valueChanged = false; + vm.PropertyChanged += (sender, args) => { + if (args.PropertyName == nameof(SizePropertyViewModel.Height)) + yChanged = true; + if (args.PropertyName == nameof(SizePropertyViewModel.Value)) + valueChanged = true; + }; + + vm.Height = 5; + Assert.That (vm.Value.Height, Is.EqualTo (5)); + Assert.That (yChanged, Is.True); + Assert.That (valueChanged, Is.True); + } + + [Test] + public void ValueChangesWidthHeight () + { + var property = GetPropertyMock (); + var editor = GetBasicEditor (property.Object); + var vm = GetViewModel (property.Object, new[] { editor }); + Assume.That (vm.Width, Is.EqualTo (0)); + Assume.That (vm.Height, Is.EqualTo (0)); + + bool xChanged = false, yChanged = false, valueChanged = false; + vm.PropertyChanged += (sender, args) => { + if (args.PropertyName == nameof(SizePropertyViewModel.Width)) + xChanged = true; + if (args.PropertyName == nameof(SizePropertyViewModel.Height)) + yChanged = true; + if (args.PropertyName == nameof(SizePropertyViewModel.Value)) + valueChanged = true; + }; + + vm.Value = new CommonSize (5, 10); + + Assert.That (vm.Width, Is.EqualTo (5)); + Assert.That (vm.Height, Is.EqualTo (10)); + Assert.That (yChanged, Is.True); + Assert.That (xChanged, Is.True); + Assert.That (valueChanged, Is.True); + } + + protected override CommonSize GetRandomTestValue (Random rand) + { + return new CommonSize (rand.Next (), rand.Next ()); + } + + protected override SizePropertyViewModel GetViewModel (IPropertyInfo property, IEnumerable<IObjectEditor> editors) + { + return new SizePropertyViewModel (property, editors); + } + } +} |