///<inheritdoc/> public ClarifiedResponse <TMessage> Validate(Quest quest) { quest.ThrowIfNull(nameof(quest)); ClarifiedResponse <TMessage> response = new ClarifiedResponse <TMessage>(); DateTime?start = quest.StartTime; DateTime?deadline = quest.Deadline; if (deadline != null && deadline < DateTime.Now) { response.Errors.Add(new ClarifiedError <TMessage> { Error = _deadlineLessThanNow, Clarification = _deadlineLessThanNowClar }); } if (deadline != null && start > deadline) { response.Errors.Add(new ClarifiedError <TMessage>() { Error = _startTimeMoreThanDeadline, Clarification = _startTimeMoreThanDeadlineClar }); } return(response); }
public void NullOrWhiteSpaceDescriptionTest(string description) { //Arrange Quest quest = new FakeQuest() { Description = description }; int nullOrWhitespace = 0; int nullOtWhitespaceClar = 1; DescriptionQuestValidator <int> validator = new DescriptionQuestValidator <int>(nullOrWhitespace, nullOtWhitespaceClar); //Act ClarifiedResponse <int> response = validator.Validate(quest); //Assert Assert.IsNotNull(response); Assert.IsFalse(response.IsSuccessful); Assert.AreEqual(1, response.Errors.Count); ClarifiedError <int> error = response.Errors[0]; Assert.AreEqual(nullOrWhitespace, error.Error); Assert.AreEqual(nullOtWhitespaceClar, error.Clarification); }
public void TitleTooLongTest() { //Arrange string title = new string('h', 26); Quest quest = new FakeQuest() { Title = title }; int nullOrWhitespace = 0; int nullOtWhitespaceClar = 1; int tooLong = 2; int tooLongClar = 3; TitleQuestValidator <int> validator = new TitleQuestValidator <int>(nullOrWhitespace, nullOtWhitespaceClar, tooLong, tooLongClar); //Act ClarifiedResponse <int> response = validator.Validate(quest); //Assert Assert.IsNotNull(response); Assert.IsFalse(response.IsSuccessful); Assert.AreEqual(1, response.Errors.Count); ClarifiedError <int> error = response.Errors[0]; Assert.AreEqual(tooLong, error.Error); Assert.AreEqual(tooLongClar, error.Clarification); }
public void OnlyStartTimeDefaultDeadlineBeforeNowTest() { //Arrange int startTimeMoreThanDeadline = 0; int startTimeMoreThanDeadlineClar = 1; int deadlineLessThanNow = 2; int deadlineLessThanNowClar = 3; StartTimeDeadlineQuestValidator <int> validator = new StartTimeDeadlineQuestValidator <int>( startTimeMoreThanDeadline, startTimeMoreThanDeadlineClar, deadlineLessThanNow, deadlineLessThanNowClar); Quest quest = new FakeQuest() { StartTime = null, Deadline = DateTime.Now - new TimeSpan(1, 1, 1) }; //Act ClarifiedResponse <int> response = validator.Validate(quest); //Assert Assert.IsNotNull(response); Assert.IsFalse(response.IsSuccessful); Assert.AreEqual(1, response.Errors.Count); ClarifiedError <int> error = response.Errors[0]; Assert.AreEqual(deadlineLessThanNow, error.Error); Assert.AreEqual(deadlineLessThanNowClar, error.Clarification); }
public void OnlyDeadlineDefaultTest() { //Arrange int startTimeMoreThanDeadline = 0; int startTimeMoreThanDeadlineClar = 1; int deadlineLessThanNow = 2; int deadlineLessThanNowClar = 3; StartTimeDeadlineQuestValidator <int> validator = new StartTimeDeadlineQuestValidator <int>( startTimeMoreThanDeadline, startTimeMoreThanDeadlineClar, deadlineLessThanNow, deadlineLessThanNowClar); Quest quest = new FakeQuest() { StartTime = DateTime.Now, Deadline = null }; //Act ClarifiedResponse <int> response = validator.Validate(quest); //Assert Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessful); Assert.IsEmpty(response.Errors); }
public void DeadlineMoreThanStartTimeTest() { //Arrange int startTimeMoreThanDeadline = 0; int startTimeMoreThanDeadlineClar = 1; int deadlineLessThanNow = 2; int deadlineLessThanNowClar = 3; StartTimeDeadlineQuestValidator <int> validator = new StartTimeDeadlineQuestValidator <int>( startTimeMoreThanDeadline, startTimeMoreThanDeadlineClar, deadlineLessThanNow, deadlineLessThanNowClar); DateTime current = DateTime.Now; Quest quest = new FakeQuest() { StartTime = current, Deadline = current + new TimeSpan(1, 1, 1) }; //Act ClarifiedResponse <int> response = validator.Validate(quest); //Assert Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessful); Assert.IsEmpty(response.Errors); }
///<inheritdoc/> public ClarifiedResponse <TMessage> Validate(Quest quest) { quest.ThrowIfNull(nameof(quest)); ClarifiedResponse <TMessage> response = new ClarifiedResponse <TMessage>(); if (string.IsNullOrWhiteSpace(quest.Description)) { response.Errors.Add(new ClarifiedError <TMessage>() { Error = _nullOrWhitespace, Clarification = _nullOrWhitespaceClar }); } return(response); }
private void SaveButtonOnClick(object sender, EventArgs eventArgs) { ViewModel.QuestViewModel.Title = TitleEditText.Text; ViewModel.QuestViewModel.Description = DescriptionEditText.Text; ClarifiedResponse <int> validationResult = ViewModel.Validate(); if (validationResult.IsSuccessful) { ViewModel.Action(); this.Activity.SetResult(Result.Ok); this.Activity.Finish(); } else { ValidationErrorsFragment errorsFragment = ValidationErrorsFragment.NewInstance(validationResult.Errors); errorsFragment.Show(FragmentManager, ValidationErrorsId); } }
public void ValidateTest() { //Arrange Quest model = new FakeQuest(); ClarifiedResponse <int> response = new ClarifiedResponse <int>(); IQuestViewModel questViewModel = MockRepository.GenerateStrictMock <IQuestViewModel>(); questViewModel.Expect(qvm => qvm.Model). Repeat.Once(). Return(model); IQuestViewModelFactory vmFactory = MockRepository.GenerateStrictMock <IQuestViewModelFactory>(); vmFactory.Expect(vmf => vmf.CreateQuestViewModel()). Repeat.Once(). Return(questViewModel); IQuestValidator <ClarifiedResponse <int> > validator = MockRepository.GenerateStrictMock <IQuestValidator <ClarifiedResponse <int> > >(); validator.Expect(v => v.Validate(Arg <Quest> .Is.Equal(model))). Repeat.Once(). Return(response); MockQuestAbstractActionViewModel viewModel = new MockQuestAbstractActionViewModel(vmFactory, validator); //Act viewModel.Initialize(); ClarifiedResponse <int> actualResponse = viewModel.Validate(); //Assert Assert.IsNotNull(actualResponse); Assert.AreEqual(response, actualResponse); questViewModel.VerifyAllExpectations(); vmFactory.VerifyAllExpectations(); validator.VerifyAllExpectations(); }
///<inheritdoc/> public ClarifiedResponse <TMessage> Validate(Quest quest) { quest.ThrowIfNull(nameof(quest)); ClarifiedResponse <TMessage> response = new ClarifiedResponse <TMessage>(); if (string.IsNullOrWhiteSpace(quest.Title)) { response.Errors.Add(new ClarifiedError <TMessage>() { Error = _nullOrWhitespace, Clarification = _nullOrWhitespaceClar }); } else if (quest.Title.Length > MaxTitleLength) { response.Errors.Add(new ClarifiedError <TMessage>() { Error = _tooLong, Clarification = _tooLongClar }); } return(response); }