Implement tests for SettingsViewModel add and add child commands.

This commit is contained in:
Daniel Kraus
2015-08-04 01:17:14 +02:00
parent 805da69d47
commit a128b76522
3 changed files with 98 additions and 7 deletions

View File

@ -146,6 +146,7 @@ namespace zaaReloaded2.ViewModels
{
FormatElementViewModel vm = new FormatElementViewModel(element);
vm.DisplayString = name;
vm.PropertyChanged += ElementViewModel_PropertyChanged;
return vm;
}

View File

@ -145,6 +145,30 @@ namespace zaaReloaded2.ViewModels
#region Messages
public Message<ViewModelMessageContent> AddElementMessage
{
get
{
if (_addElementMessage == null)
{
_addElementMessage = new Message<ViewModelMessageContent>();
}
return _addElementMessage;
}
}
public Message<ViewModelMessageContent> AddChildElementMessage
{
get
{
if (_addChildElementMessage == null)
{
_addChildElementMessage = new Message<ViewModelMessageContent>();
}
return _addChildElementMessage;
}
}
#endregion
#region Commands
@ -216,6 +240,7 @@ namespace zaaReloaded2.ViewModels
{
elementViewModel.PropertyChanged += ElementViewModel_PropertyChanged;
Elements.Add(elementViewModel);
_settings.Elements.Add(elementViewModel.RevealModelObject() as ElementBase);
}
/// <summary>
@ -233,9 +258,34 @@ namespace zaaReloaded2.ViewModels
#region Private methods
void DoAddElement() { }
void DoAddElement()
{
// Create a new element picker; it will automatically create and
// send us a new element view model if one is chosen by the view.
ElementPickerViewModel picker = new ElementPickerViewModel(true);
picker.ElementChosenMessage.Sent += (sender, args) =>
{
ElementViewModel newVM = args.Content.ViewModel as ElementViewModel;
AddElementViewModel(newVM);
};
AddElementMessage.Send(new ViewModelMessageContent(picker));
}
void DoAddChildElement() { }
void DoAddChildElement()
{
if (CanAddChildElement())
{
// Create a new element picker; it will automatically create and
// send us a new element view model if one is chosen by the view.
ElementPickerViewModel picker = new ElementPickerViewModel(false);
picker.ElementChosenMessage.Sent += (sender, args) =>
{
FormatElementViewModel newVM = args.Content.ViewModel as FormatElementViewModel;
AddChildElementViewModel(SelectedElement as ControlElementViewModel, newVM);
};
AddChildElementMessage.Send(new ViewModelMessageContent(picker));
}
}
bool CanAddChildElement()
{
@ -290,7 +340,8 @@ namespace zaaReloaded2.ViewModels
DelegatingCommand _addChildElementCommand;
DelegatingCommand _deleteElementCommand;
DelegatingCommand _copyElementCommand;
Message<ViewModelMessageContent> _addElementMessage;
Message<ViewModelMessageContent> _addChildElementMessage;
List<ElementViewModel> _elements;
ElementViewModel _selectedElement;
EnumProvider<ReferenceStyle> _referenceStyle;