From 1205958eb19c456d43a6a2c6253114b3b8268fc4 Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Wed, 5 Aug 2015 20:36:31 +0200 Subject: [PATCH] Implement test to delete child element and make it pass. --- Tests/ViewModels/SettingsViewModelTest.cs | 26 ++++++++++++++++++++ zaaReloaded2/ViewModels/SettingsViewModel.cs | 1 + 2 files changed, 27 insertions(+) diff --git a/Tests/ViewModels/SettingsViewModelTest.cs b/Tests/ViewModels/SettingsViewModelTest.cs index 637bb48..0fbd160 100755 --- a/Tests/ViewModels/SettingsViewModelTest.cs +++ b/Tests/ViewModels/SettingsViewModelTest.cs @@ -127,6 +127,32 @@ namespace Tests.ViewModels "Settings' Element collection still contains the element model."); } + [Test] + public void DeleteChildElement() + { + Settings settings = new Settings(); + settings.AddElement(new SelectFirstDay(new Items())); + settings.AddElement(new SelectEachDay()); + settings.AddElement(new SelectLastDay()); + SettingsViewModel settingsVM = new SettingsViewModel(settings); + ControlElementViewModel parent = ((ControlElementViewModel)settingsVM.Elements.First()); + int oldCount = parent.Elements.Count; + ElementViewModel elementVM = ((ControlElementViewModel)settingsVM.Elements.First()) + .Elements.First(); + ElementBase element = elementVM.RevealModelObject() as ElementBase; + Assert.IsTrue(((ControlElementBase)settings.Elements[0]).FormatElements.Contains(element), + "Settings object does not contain the model that the VM revealed?!"); + elementVM.IsSelected = true; + Assert.IsTrue(settingsVM.DeleteElementCommand.CanExecute(null), + "DeleteElementCommand should be enabled."); + settingsVM.DeleteElementCommand.Execute(null); + Assert.AreEqual(oldCount - 1, parent.Elements.Count); + Assert.IsFalse(parent.Elements.Contains(elementVM), + "Elements collection still contains the deleted element view model."); + Assert.IsFalse(((ControlElementBase)settings.Elements[0]).FormatElements.Contains(element), + "Settings' collection of FormatElement children still contains the element model."); + } + [Test] public void CopyElement() { diff --git a/zaaReloaded2/ViewModels/SettingsViewModel.cs b/zaaReloaded2/ViewModels/SettingsViewModel.cs index 9f4670b..927d04d 100755 --- a/zaaReloaded2/ViewModels/SettingsViewModel.cs +++ b/zaaReloaded2/ViewModels/SettingsViewModel.cs @@ -135,6 +135,7 @@ namespace zaaReloaded2.ViewModels vm = new ControlElementViewModel(element as ControlElementBase); foreach (FormatElementViewModel childVM in ((ControlElementViewModel)vm).Elements) { + childVM.Parent = vm as ControlElementViewModel; childVM.PropertyChanged += ElementViewModel_PropertyChanged; } }