119 lines
4.7 KiB
C#
Executable File
119 lines
4.7 KiB
C#
Executable File
/* SettingsViewModelTest.cs
|
|
* part of zaaReloaded2
|
|
*
|
|
* Copyright 2015 Daniel Kraus
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using NUnit.Framework;
|
|
using zaaReloaded2.ViewModels;
|
|
using zaaReloaded2.Controller;
|
|
using zaaReloaded2.Controller.Elements;
|
|
|
|
namespace Tests.ViewModels
|
|
{
|
|
[TestFixture]
|
|
class SettingsViewModelTest
|
|
{
|
|
SettingsViewModel _settingsVM;
|
|
|
|
[SetUp]
|
|
public void SetUp()
|
|
{
|
|
_settingsVM = new SettingsViewModel();
|
|
}
|
|
|
|
[Test]
|
|
public void AddElement()
|
|
{
|
|
bool messageSent = false;
|
|
Settings model = _settingsVM.RevealModelObject() as Settings;
|
|
int oldViewModelElementCount = _settingsVM.Elements.Count;
|
|
int oldModelElementCount = model.Elements.Count;
|
|
_settingsVM.AddElementMessage.Sent += (sender, args) =>
|
|
{
|
|
messageSent = true;
|
|
ElementPickerViewModel picker = args.Content.ViewModel as ElementPickerViewModel;
|
|
Assert.IsNotNull(picker, "ViewModel in MessageContent is not an ElementPickerViewModel");
|
|
picker.Categories.First().Children.First().IsSelected = true;
|
|
picker.ChooseElementCommand.Execute(null);
|
|
};
|
|
_settingsVM.AddElementCommand.Execute(null);
|
|
Assert.IsTrue(messageSent, "Message was not sent");
|
|
Assert.AreEqual(oldViewModelElementCount + 1, _settingsVM.Elements.Count,
|
|
"Count of elements in ViewModel was not increased by 1");
|
|
Assert.AreEqual(oldModelElementCount + 1, model.Elements.Count,
|
|
"Count of elements in settings Model was not increased by 1");
|
|
}
|
|
|
|
[Test]
|
|
public void AddChildElement()
|
|
{
|
|
bool messageSent = false;
|
|
SelectEachDay model = new SelectEachDay();
|
|
ControlElementViewModel viewModel = new ControlElementViewModel(model);
|
|
_settingsVM.AddElementViewModel(viewModel);
|
|
viewModel.IsSelected = true;
|
|
int oldViewModelChildrenCount = viewModel.Elements.Count;
|
|
int oldModelChildrenCount = model.FormatElements.Count;
|
|
_settingsVM.AddChildElementMessage.Sent += (sender, args) =>
|
|
{
|
|
messageSent = true;
|
|
ElementPickerViewModel picker = args.Content.ViewModel as ElementPickerViewModel;
|
|
Assert.IsNotNull(picker, "ViewModel in MessageContent is not an ElementPickerViewModel");
|
|
picker.Categories.First().Children.First().IsSelected = true;
|
|
Assert.IsTrue(picker.ChooseElementCommand.CanExecute(null),
|
|
"Cannot execute element picker's ChooseElementCommand.");
|
|
picker.ChooseElementCommand.Execute(null);
|
|
};
|
|
_settingsVM.AddChildElementCommand.Execute(null);
|
|
Assert.IsTrue(messageSent, "Message was not sent");
|
|
Assert.AreEqual(oldViewModelChildrenCount + 1, viewModel.Elements.Count,
|
|
"Count of children in ViewModel was not increased by 1");
|
|
Assert.AreEqual(oldModelChildrenCount + 1, model.FormatElements.Count,
|
|
"Count of children in Model was not increased by 1");
|
|
}
|
|
|
|
[Test]
|
|
public void CannotAddChildElementToFormatElement()
|
|
{
|
|
ControlElementViewModel parent = new ControlElementViewModel(
|
|
new SelectFirstDay());
|
|
_settingsVM.AddElementViewModel(parent);
|
|
parent.IsSelected = true;
|
|
Assert.IsTrue(_settingsVM.AddChildElementCommand.CanExecute(null));
|
|
FormatElementViewModel child = new FormatElementViewModel(new Items());
|
|
_settingsVM.AddChildElementViewModel(parent, child);
|
|
parent.IsSelected = false;
|
|
child.IsSelected = true;
|
|
Assert.IsFalse(_settingsVM.AddChildElementCommand.CanExecute(null));
|
|
}
|
|
|
|
[Test]
|
|
public void DeleteElement()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
[Test]
|
|
public void CopyElement()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|