public void EditCommand() { Preset s = new Preset() { Name = "test settings" }; PresetsRepository sr = PresetsRepository.Default; PresetsRepositoryViewModel srvm = new PresetsRepositoryViewModel(); sr.Add(s); Assert.IsFalse(srvm.EditCommand.CanExecute(null), "Edit settings command should be disabled if nothing is selected."); srvm.ViewModels[srvm.ViewModels.Count - 1].IsSelected = true; Assert.IsTrue(srvm.EditCommand.CanExecute(null), "Edit settings command should be enabled if at least one object is selected."); bool messageSent = false; srvm.EditSettingsMessage.Sent += (object sender, MessageArgs <ViewModelMessageContent> args) => { messageSent = true; Assert.IsTrue(args.Content.ViewModel.IsViewModelOf(s), "EditSettingsMessage did not carry the correct ExportSettingsViewModel object."); }; srvm.EditCommand.Execute(null); Assert.IsTrue(messageSent, "EditSettingsMessage should have been sent but wasn't."); }
public void AddCommand() { PresetsRepository sr = PresetsRepository.Default; PresetsRepositoryViewModel srvm = new PresetsRepositoryViewModel(); int numSettings = sr.Presets.Count; srvm.AddCommand.Execute(null); Assert.AreEqual(numSettings + 1, sr.Presets.Count, "Export settings repository should have new settings."); Assert.AreEqual(numSettings + 1, srvm.ViewModels.Count, "Settings repository view model should have new settings view model."); }
public void RemoveCommand() { PresetsRepository sr = PresetsRepository.Default; for (int i = 0; i < 3; i++) { Preset p = new Preset(); p.Name = String.Format("Test preset #{0}", i); sr.Add(p); } ; int oldCount = sr.Presets.Count; PresetsRepositoryViewModel srvm = new PresetsRepositoryViewModel(); Preset s = sr.Presets[2]; Assert.IsFalse(srvm.RemoveCommand.CanExecute(null), "Remove command should be disabled if no export settings objects are selected."); srvm.ViewModels[2].IsSelected = true; Assert.IsTrue(srvm.RemoveCommand.CanExecute(null), "Remove command should be enabled if at least one export settings object is selected."); bool messageSent = false; srvm.ConfirmRemoveMessage.Sent += (object sender, MessageArgs <MessageContent> args) => { messageSent = true; args.Content.Confirmed = true; args.Respond(); }; srvm.RemoveCommand.Execute(null); Assert.IsTrue(messageSent, "ConfirmRemoveMessage was not sent."); srvm.RemoveCommand.Execute(null); Assert.AreEqual(oldCount - 1, srvm.ViewModels.Count, "Number of view model messages was not reduced by 1 after delete command."); Assert.IsFalse(((PresetsRepository)srvm.RevealModelObject()).Presets.Contains(s), "Settings object was supposed to be removed but still exists in SettingsRepository."); }