Skip to content
This repository was archived by the owner on Sep 25, 2024. It is now read-only.

Commit 1976b12

Browse files
authored
Merge pull request #551 from xamarin/ermau-fix-grouped-filtering
[Core] Fix removing groupable items when not grouped
2 parents 758df3a + c4c4e84 commit 1976b12

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,35 @@ public void AddGroupedAtEnd ()
335335
Assert.That (vm.ArrangedEditors.Any (g => g.Category == "ints"), Is.True, "Does not have grouped editors category");
336336
}
337337

338+
[Test]
339+
[Description ("#544 Bug coverage for removing groupable items when not grouped")]
340+
public void FilterGroupableWhenNotGrouped ()
341+
{
342+
var stringProvider = new StringViewModelTests ();
343+
344+
var stringProperty1 = stringProvider.GetPropertyMock ("string1");
345+
var stringProperty2 = stringProvider.GetPropertyMock ("string2");
346+
347+
var editor = new MockObjectEditor (stringProperty1.Object, stringProperty2.Object);
348+
349+
var provider = new Mock<IEditorProvider> ();
350+
provider.Setup (p => p.GetObjectEditorAsync (editor.Target)).ReturnsAsync (editor);
351+
352+
var platform = new TargetPlatform (provider.Object) {
353+
GroupedTypes = new Dictionary<Type, string> {
354+
{ typeof(string), "B" }
355+
}
356+
};
357+
358+
var vm = new PanelViewModel (platform);
359+
Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name));
360+
vm.SelectedObjects.Add (editor.Target);
361+
Assume.That (vm.ArrangedEditors[0].Editors.Count, Is.EqualTo (2));
362+
363+
vm.FilterText = "A";
364+
Assert.That (vm.ArrangedEditors.Count, Is.EqualTo (0));
365+
}
366+
338367
[Test]
339368
public async Task AutoExpand ()
340369
{

Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public bool Remove (EditorViewModel editor)
5858

5959
var list = GetList (editor, separate: true);
6060
if (editor is PropertyViewModel pvm && this.targetPlatform.GroupedTypes != null && this.targetPlatform.GroupedTypes.TryGetValue (pvm.Property.Type, out string groupName)) {
61-
var group = list.OfType<PropertyGroupViewModel> ().First (gvm => gvm.Category == groupName);
61+
var group = list.OfType<PropertyGroupViewModel> ().FirstOrDefault (gvm => gvm.Category == groupName);
6262
if (group != null) {
6363
bool found = group.Remove (pvm);
6464
if (!group.HasChildElements)

0 commit comments

Comments
 (0)