diff options
author | Eric Maupin <ermaup@microsoft.com> | 2018-02-02 22:28:26 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2018-02-02 22:29:33 +0300 |
commit | 11659c9df419ef49e71803f3b8ed9f930195f8ed (patch) | |
tree | dabb26f769ee387f14834e9ff6d9ce235b69030a /Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs | |
parent | f018da729c73b138fd78178b6319e95899eba378 (diff) |
[Core] Fix resource commands
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs')
-rw-r--r-- | Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs index a7c4b7d..0745596 100644 --- a/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs +++ b/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs @@ -268,6 +268,46 @@ namespace Xamarin.PropertyEditing.Tests } [Test] + public void CanSetValueResourceUpdatesOnProviderSet() + { + var mockProperty = GetPropertyMock (); + mockProperty.SetupGet (pi => pi.CanWrite).Returns (true); + + var resource = new Resource ("name"); + + var resourcesMock = new Mock<IResourceProvider> (); + resourcesMock.Setup (rp => rp.GetResourcesAsync (new object(), mockProperty.Object, It.IsAny<CancellationToken> ())).ReturnsAsync (new[] { resource }); + + var vm = GetViewModel (mockProperty.Object, new[] { new Mock<IObjectEditor> ().Object }); + Assume.That (vm.SetValueResourceCommand.CanExecute (resource), Is.False); + + bool setChanged = false; + vm.SetValueResourceCommand.CanExecuteChanged += (o,e) => setChanged = true; + + Assume.That (vm.SetValueResourceCommand.CanExecute (resource), Is.False); + + vm.ResourceProvider = resourcesMock.Object; + + Assert.That (setChanged, Is.True); + Assert.That (vm.SetValueResourceCommand.CanExecute (resource), Is.True); + } + + [Test] + public void CanRequestResourceNoProvider() + { + var mockProperty = GetPropertyMock (); + mockProperty.SetupGet (pi => pi.CanWrite).Returns (true); + + var resource = new Resource ("name"); + + var resourcesMock = new Mock<IResourceProvider> (); + resourcesMock.Setup (rp => rp.GetResourcesAsync (new object(), mockProperty.Object, It.IsAny<CancellationToken> ())).ReturnsAsync (new[] { resource }); + + var vm = GetViewModel (mockProperty.Object, new[] { new Mock<IObjectEditor> ().Object }); + Assert.That (vm.RequestResourceCommand.CanExecute (null), Is.False); + } + + [Test] [Description ("RequestResourceCommand's CanExecuteChanged should fire when SetValueResourceCommand's does")] public void CanRequestResourceSetValueChanges() { @@ -281,6 +321,7 @@ namespace Xamarin.PropertyEditing.Tests var vm = GetViewModel (mockProperty.Object, new[] { new Mock<IObjectEditor> ().Object }); Assume.That (vm.SetValueResourceCommand.CanExecute (resource), Is.False); + Assume.That (vm.RequestResourceCommand.CanExecute (null), Is.False); bool setChanged = false; vm.SetValueResourceCommand.CanExecuteChanged += (o,e) => setChanged = true; |