Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Maupin <ermaup@microsoft.com>2019-02-20 21:22:27 +0300
committerEric Maupin <ermaup@microsoft.com>2019-02-20 21:22:27 +0300
commit20394cf6c9d2706da77425753a1e70d1fe4f1a89 (patch)
treee8082f0edba1d5bcdaad3d8f27a2aa91dfef178a /Xamarin.PropertyEditing.Tests
parentf4273f41a9a221d8baad04604138381b272f8437 (diff)
[core] CreateInstance should bail on null returned type
Diffstat (limited to 'Xamarin.PropertyEditing.Tests')
-rw-r--r--Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs35
1 files changed, 35 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
index ef3e438..cedf835 100644
--- a/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
@@ -256,6 +256,41 @@ namespace Xamarin.PropertyEditing.Tests
Assert.That (vm.ValueType, Is.Null);
}
+ [Test]
+ public void ReturnedNullTypeCancels ()
+ {
+ object value = new object ();
+ var p = CreatePropertyMock ("prop");
+ var childsubInfo = GetTypeInfo (typeof (SubChildClass));
+ var editor = new MockObjectEditor (new[] { p.Object }, new Dictionary<IPropertyInfo, IReadOnlyList<ITypeInfo>> {
+ {
+ p.Object,
+ new[] {
+ GetTypeInfo (typeof(ChildClass)),
+ childsubInfo
+ }
+ }
+ });
+
+ var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor });
+
+ var tcs = new TaskCompletionSource<ITypeInfo> ();
+ bool requested = false;
+ vm.TypeRequested += (sender, args) => {
+ requested = true;
+ args.SelectedType = tcs.Task;
+ };
+
+ Assume.That (vm.CreateInstanceCommand.CanExecute (childsubInfo), Is.True);
+ vm.CreateInstanceCommand.Execute (null);
+ Assume.That (requested, Is.True);
+
+ tcs.SetResult (null);
+
+ providerMock.Verify (ep => ep.CreateObjectAsync (null), Times.Never);
+ }
+
private TestContext syncContext;
private Mock<IEditorProvider> CreateProviderMock (object value, IObjectEditor editor)