public void WhenCreatingAViewModelForAQuestionWithNullResponse_ThenInitializesTheResponseToAnEmptyCollection() { var question = new MultipleSelectionQuestion { Range = new[] { "a", "b", "c" } }; var viewModel = new MultipleSelectionQuestionViewModel(question); CollectionAssert.AreEqual(new string[0], question.Response.ToArray()); }
public void WhenUpdatingTheElementsInTheSelectionsListInTheViewModel_ThenResponseIsSetInTheModelAndValidationIsUpdated() { var template = new MultipleSelectionQuestionTemplate { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var question = template.CreateNewQuestion() as MultipleSelectionQuestion; var questionAsINDEI = question as INotifyDataErrorInfo; var viewModel = new MultipleSelectionQuestionViewModel(question); viewModel.Selections.Add("a"); CollectionAssert.AreEqual((ICollection)viewModel.Selections, question.Response.ToArray()); Assert.IsFalse(questionAsINDEI.HasErrors); viewModel.Selections.Add("b"); CollectionAssert.AreEqual((ICollection)viewModel.Selections, question.Response.ToArray()); Assert.IsFalse(questionAsINDEI.HasErrors); viewModel.Selections.Add("c"); CollectionAssert.AreEqual((ICollection)viewModel.Selections, question.Response.ToArray()); Assert.IsTrue(questionAsINDEI.HasErrors); viewModel.Selections.Remove("a"); CollectionAssert.AreEqual((ICollection)viewModel.Selections, question.Response.ToArray()); Assert.IsFalse(questionAsINDEI.HasErrors); }
public void WhenSettingASelectionOnTheViewModel_ThenHasChangesIsTrue() { var question = new MultipleSelectionQuestion { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var viewModel = new MultipleSelectionQuestionViewModel(question); int responseChanges = 0; viewModel.ResponseChanged += (s, e) => responseChanges++; viewModel.Selections.Add("a"); Assert.IsTrue(responseChanges > 0); }
public void WhenSettingASelectionOnTheViewModel_ThenHasChangesIsTrue() { var template = new MultipleSelectionQuestionTemplate { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var question = template.CreateNewQuestion() as MultipleSelectionQuestion; var viewModel = new MultipleSelectionQuestionViewModel(question); int responseChanges = 0; viewModel.ResponseChanged += (s, e) => responseChanges++; viewModel.Selections.Add("a"); Assert.IsTrue(viewModel.HasChanges); }
public void WhenUpdatingTheCollectionInitializedByTheViewModel_ThenTheViewModelNotifiesChangesToTheResponse() { var question = new MultipleSelectionQuestion { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var viewModel = new MultipleSelectionQuestionViewModel(question); int responseChanges = 0; viewModel.ResponseChanged += (s, e) => responseChanges++; viewModel.Selections.Add("a"); Assert.AreEqual(1, responseChanges); viewModel.Selections.Add("b"); Assert.AreEqual(2, responseChanges); viewModel.Selections.Add("c"); Assert.AreEqual(3, responseChanges); viewModel.Selections.Remove("b"); Assert.AreEqual(4, responseChanges); }
public void WhenCreatingTheViewModel_ThenHasChangesIsFalse() { var template = new MultipleSelectionQuestionTemplate { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var question = template.CreateNewQuestion() as MultipleSelectionQuestion; var viewModel = new MultipleSelectionQuestionViewModel(question); Assert.IsFalse(viewModel.HasChanges); }
public void WhenCreatingTheViewModel_ThenHasChangesIsFalse() { var question = new MultipleSelectionQuestion { Range = new[] { "a", "b", "c" }, MaxSelections = 2 }; var viewModel = new MultipleSelectionQuestionViewModel(question); bool hasChanges = false; viewModel.ResponseChanged += (o, e) => { hasChanges = true; }; Assert.IsFalse(hasChanges); }