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);
        }
예제 #3
0
        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 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 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 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 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);
        }