diff options
author | Eric Maupin <ermaup@microsoft.com> | 2018-05-01 00:38:16 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2018-05-01 01:00:33 +0300 |
commit | c3c2276bf00f31498e45967f2ceb43b83d9e0ec6 (patch) | |
tree | 1cd300c36d5caf1b704a9d7ad159dbb499b73729 /Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs | |
parent | c7e1930ab4382b9949e37c16c030ad719b5b395a (diff) |
[Core] Don't trigger reset on child groups if already empty
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs')
-rw-r--r-- | Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs b/Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs index 0f44768..6bb2968 100644 --- a/Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs +++ b/Xamarin.PropertyEditing.Tests/ObservableLookupTests.cs @@ -116,5 +116,32 @@ namespace Xamarin.PropertyEditing.Tests Assert.That (lookup, Is.Empty); Assert.That (changed, Is.False); } + + [Test] + public void RemoveLastElementFromNullGroup () + { + const string element = "test"; + var lookup = new ObservableLookup<string, string> (); + lookup.Add (null, element); + + int groupChanged = 0; + var g = lookup[null]; + ((INotifyCollectionChanged) g).CollectionChanged += (sender, args) => { + groupChanged++; + Assert.That (args.Action, Is.EqualTo (NotifyCollectionChangedAction.Remove)); + Assert.That (args.OldItems[0], Is.SameAs (element)); + }; + + int lookupChanged = 0; + lookup.CollectionChanged += (sender, args) => { + lookupChanged++; + Assert.That (args.Action, Is.EqualTo (NotifyCollectionChangedAction.Remove)); + Assert.That (args.OldItems[0], Is.SameAs (g)); + }; + + lookup.Remove (null, element); + Assert.That (lookupChanged, Is.EqualTo (1)); + Assert.That (groupChanged, Is.EqualTo (1)); + } } } |