diff options
author | Eric Maupin <ermaup@microsoft.com> | 2019-03-09 01:39:07 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2019-03-11 21:29:58 +0300 |
commit | 91a24876f4f4211b3fb07b87746682acd4c9faae (patch) | |
tree | d0cfe5dae4526db2f700886e01b471a659afab22 /Xamarin.PropertyEditing.Tests | |
parent | dd82de3c75f83fc7dc8c07081f8a0da65dda87af (diff) |
[Core] Filter uncommon properties properly
Diffstat (limited to 'Xamarin.PropertyEditing.Tests')
-rw-r--r-- | Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs index 550d4d1..6b682cb 100644 --- a/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs +++ b/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs @@ -115,6 +115,54 @@ namespace Xamarin.PropertyEditing.Tests } [Test] + public void UncommonPropertiesFiltered () + { + var obj = new TestClassSub (); + + var property = new Mock<IPropertyInfo> (); + property.Setup (pi => pi.Name).Returns (nameof(TestClass.Property)); + property.Setup (pi => pi.Type).Returns (typeof(string)); + property.Setup (pi => pi.RealType).Returns (typeof (string).ToTypeInfo ()); + property.Setup (pi => pi.IsUncommon).Returns (true); + + var subProperty = new Mock<IPropertyInfo> (); + subProperty.Setup (pi => pi.Name).Returns (nameof (TestClassSub.SubProperty)); + subProperty.Setup (pi => pi.Type).Returns (typeof (int)); + subProperty.Setup (pi => pi.RealType).Returns (typeof (int).ToTypeInfo ()); + subProperty.Setup (pi => pi.IsUncommon).Returns (false); + + var editor = new Mock<IObjectEditor> (); + editor.SetTarget (obj); + editor.Setup (e => e.Properties).Returns (new[] { property.Object, subProperty.Object }); + + var provider = new MockEditorProvider (editor.Object); + + var vm = new PanelViewModel (new TargetPlatform (provider)); + Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name)); + vm.SelectedObjects.Add (obj); + + Assume.That (vm.ArrangedEditors, Is.Not.Empty); + Assume.That (vm.ArrangedEditors[0].Editors.Count, Is.EqualTo (2)); + Assume.That (vm.IsFiltering, Is.False); + bool changed = false; + vm.PropertyChanged += (sender, args) => { + if (args.PropertyName == nameof (PanelViewModel.IsFiltering)) { + changed = true; + } + }; + + vm.FilterText = "sub"; + Assert.That (vm.ArrangedEditors[0].Editors.Count, Is.EqualTo (1), "Uncommon property wasn't filtered out"); + Assert.That (vm.IsFiltering, Is.True); + Assert.That (changed, Is.True); + changed = false; + + vm.FilterText = null; + Assert.That (vm.IsFiltering, Is.False); + Assert.That (changed, Is.True); + } + + [Test] [Description ("When filtered Text is cleared then list is restored back to its original.")] public async Task PropertyListFilteredTextClearedRestoresList () { |