public void WhenQuestionHasValidValue_ThenItIsComplete() { var question = new OpenQuestion { MaxLength = 10 }; question.Response = "aaaa"; Assert.IsTrue(question.IsComplete); }
public void ViewModelHasMaxLengthAsTheAvailableLength() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); Assert.AreEqual(25, viewModel.AvailableLength); }
public void WhenQuestionHasEmptyValue_ThenItIsNotComplete() { var question = new OpenQuestion { MaxLength = 10 }; question.Response = ""; Assert.IsFalse(question.IsComplete); }
public void WhenResponseLengthExceedsMaxLength_ThenIndicatesErrorOnResponse() { var question = new OpenQuestion { MaxLength = 10 }; var notifyErrorInfo = (INotifyDataErrorInfo)question; question.Response = "ThisIsLongerThanTenCharacters"; Assert.IsTrue(notifyErrorInfo.GetErrors("Response").Cast<string>().Any()); }
public void WhenSettingTheResponseTextPropertyOnTheModel_ThenAvailableLengthIsUpdatedOnTheViewModel() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); question.Response = "1234567890"; Assert.AreEqual(15, viewModel.AvailableLength); }
public void WhenSettingTheResponseTextPropertyOnTheModel_ThenAChangeOnAvailableLengthIsNotifiedOnTheViewModel() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); var changeTracker = new PropertyChangeTracker(viewModel); question.Response = "1234567890"; Assert.IsTrue(changeTracker.ChangedProperties.Contains("AvailableLength")); }
public void WhenSettingResponseToNull_ThenIndicatesErrorOnResponse() { var question = new OpenQuestion { MaxLength = 10 }; var notifyErrorInfo = (INotifyDataErrorInfo)question; question.Response = "valid"; Assert.IsFalse(notifyErrorInfo.GetErrors("Response").Cast<string>().Any()); question.Response = null; Assert.IsTrue(notifyErrorInfo.GetErrors("Response").Cast<string>().Any()); }
public void WhenSettingTheResponseTextPropertyOnTheModel_ThenTheViewModelNotifiesAResponseChange() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); bool responseChanged = false; viewModel.ResponseChanged += (s, e) => responseChanged = true; question.Response = "1234567890"; Assert.IsTrue(responseChanged); }
public void WhenQuestionIsNew_ThenTemplateValuesAreCopied() { var question = new OpenQuestion { MaxLength = 10 }; Assert.AreEqual(10, question.MaxLength); }
public void WhenQuestionIsNew_ThenItIsNotComplete() { var question = new OpenQuestion { MaxLength = 10 }; Assert.IsFalse(question.IsComplete); }
public void WhenSettingTheResponseOntheModel_ThenViewModelHasChanges() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); bool hasChanges = false; viewModel.ResponseChanged += (o, e) => { hasChanges = true; }; question.Response = "1234567890"; Assert.IsTrue(hasChanges); }
public void WhenCreatingTheViewModel_ThenHasChangesIsFalse() { var question = new OpenQuestion { QuestionText = "Question", MaxLength = 25 }; var viewModel = new OpenQuestionViewModel(question); bool hasChanges = false; viewModel.ResponseChanged += (o,e) => { hasChanges = true; }; Assert.IsFalse(hasChanges); }