public void WhenAddingReminder_ThenUpdatesServiceReminder() { const int newReminderId = 456; var vehicle = new Vehicle { VehicleId = DefaultVehicleId, Name = "vehicle" }; _vehicleRepository .Setup(r => r.GetVehicle(DefaultUserId, DefaultVehicleId)) .Returns(vehicle); _reminderRepository .Setup(r => r.Create(DefaultVehicleId, It.IsAny <Reminder>())) .Callback(new Action <int, Reminder>((vehicleId, reminder) => { // represents the entity created internally reminder.ReminderId = newReminderId; reminder.VehicleId = DefaultVehicleId; })); var formModel = new ReminderFormModel(); var handler = new AddReminderToVehicle(_vehicleRepository.Object, _reminderRepository.Object); handler.Execute(DefaultUserId, DefaultVehicleId, formModel); Assert.Equal(newReminderId, formModel.ReminderId); Assert.Equal(DefaultVehicleId, formModel.VehicleId); }
public ActionResult Add(int vehicleId, ReminderFormModel reminder) { if ((reminder != null) && ModelState.IsValid) { var errors = Using <CanAddReminder>().Execute(CurrentUserId, reminder); ModelState.AddModelErrors(errors, "Add"); if (ModelState.IsValid) { Using <AddReminderToVehicle>().Execute(CurrentUserId, vehicleId, reminder); return(RedirectToAction("Details", "Reminder", new { id = reminder.ReminderId })); } } var vehicles = Using <GetVehicleListForUser>() .Execute(CurrentUserId); var vehicle = vehicles.First(v => v.VehicleId == vehicleId); var reminders = Using <GetUnfulfilledRemindersForVehicle>() .Execute(CurrentUserId, vehicleId, vehicle.Odometer ?? 0) .Select(r => new ReminderSummaryModel(r, r.IsOverdue ?? false)); var viewModel = new ReminderAddViewModel { VehicleList = new VehicleListViewModel(vehicles, vehicleId) { IsCollapsed = true }, Reminder = reminder, Reminders = new SelectedItemList <ReminderSummaryModel>(reminders), }; return(View(viewModel)); }
public void WhenCanAddReminderWithInvalidDueDistance_ThenReturnsValidationResult() { var vehicle1 = new Vehicle { VehicleId = DefaultVehicleId, Name = "vehicle1", Fillups = new[] { new FillupEntry { Odometer = 7000 } } }; _vehicleRepositoryMock .Setup(vr => vr.GetVehicle(DefaultUserId, DefaultVehicleId)) .Returns(vehicle1); var handler = new CanAddReminder(_vehicleRepositoryMock.Object); var formModel = new ReminderFormModel { VehicleId = DefaultVehicleId, Title = "Test", DueDistance = 5000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.NotEmpty(result); }
public void WhenReminderIdSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.ReminderId = 4; int actual = target.ReminderId; Assert.Equal(4, actual); }
public void WhenTitleSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.Title = "Title"; string actual = target.Title; Assert.Equal("Title", actual); }
public void WhenRemarksSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.Remarks = "Remarks"; string actual = target.Remarks; Assert.Equal("Remarks", actual); }
public void WhenDueDateSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.DueDate = new DateTime(2011, 01, 01); DateTime?actual = target.DueDate; Assert.NotNull(actual); Assert.Equal(new DateTime(2011, 01, 01), actual); }
public void WhenConstructed_ThenSuccessful() { var actual = new ReminderFormModel(); Assert.NotNull(actual); Assert.Equal(0, actual.ReminderId); Assert.Null(actual.Title); Assert.Null(actual.Remarks); Assert.Null(actual.DueDate); Assert.Null(actual.DueDistance); }
public void WhenDueDistanceSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.DueDistance = 5; int?actual = target.DueDistance; Assert.NotNull(actual); Assert.Equal(5, actual); }
public void WhenTitleSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.Title = "Title"; target.Title = null; string actual = target.Title; Assert.Null(actual); }
public void WhenNeitherDueDateNorDueDistanceSet_ThenValidationFails() { var target = new ReminderFormModel(); target.Title = "Title"; var validationContext = new ValidationContext(target, null, null); var validationResults = new List <ValidationResult>(); bool actual = Validator.TryValidateObject(target, validationContext, validationResults, true); Assert.False(actual); }
public void WhenReminderDueDateAndDueDistanceNull_ThenIsOverdueReturnsFalse() { var reminder = new ReminderFormModel() { Title = "future reminder", DueDate = null, DueDistance = null }; reminder.UpdateLastVehicleOdometer(10); bool isOverdue = reminder.IsOverdue; Assert.False(isOverdue); }
public void WhenRemarksSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.Remarks = "Remarks"; target.Remarks = null; string actual = target.Remarks; Assert.Null(actual); }
public void WhenReminderIsOverdueByDateAndDueDistanceNull_ThenIsOverdueReturnsTrue() { var reminder = new ReminderFormModel() { Title = "future reminder", DueDate = DateTime.UtcNow.AddDays(-2), DueDistance = null }; reminder.UpdateLastVehicleOdometer(10); bool isOverdue = reminder.IsOverdue; Assert.True(isOverdue); }
public void WhenDueDistanceSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.DueDistance = 5; target.DueDistance = null; int?actual = target.DueDistance; Assert.Null(actual); }
public void WhenReminderIsNotOverdue_ThenIsOverdueReturnsFalse() { var reminder = new ReminderFormModel() { Title = "future reminder", DueDate = DateTime.UtcNow.AddDays(2), DueDistance = 10000 }; reminder.UpdateLastVehicleOdometer(10); bool isOverdue = reminder.IsOverdue; Assert.False(isOverdue); }
public void WhenDueDateSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.DueDate = new DateTime(2011, 01, 01); target.DueDate = null; DateTime?actual = target.DueDate; Assert.Null(actual); }
public void WhenAddReminderPostWithInvalidReminder_ThenReturnsToCreatePage() { MockDefaultHandlers(); ReminderController controller = GetTestableReminderController(); controller.ModelState.AddModelError("test", "test error"); var reminderForm = new ReminderFormModel(); ActionResult result = controller.Add(defaultVehicleId, reminderForm); Assert.IsType(typeof(ContentTypeAwareResult), result); }
public void WhenTitleSetToValidValue_ThenValidationPasses() { var target = new ReminderFormModel(); target.Title = "Title"; target.DueDate = DateTime.UtcNow; var validationContext = new ValidationContext(target, null, null); var validationResults = new List <ValidationResult>(); bool actual = Validator.TryValidateObject(target, validationContext, validationResults, true); Assert.True(actual); Assert.Equal(0, validationResults.Count); }
public void WhenTitleSetTo51Characters_ThenValidationFails() { var target = new ReminderFormModel(); target.Title = new string('1', 51); var validationContext = new ValidationContext(target, null, null); var validationResults = new List <ValidationResult>(); bool actual = Validator.TryValidateObject(target, validationContext, validationResults, true); Assert.False(actual); Assert.Equal(1, validationResults[0].MemberNames.Count()); Assert.Equal("Title", validationResults[0].MemberNames.First()); }
public void WhenDueDistanceSetToNegative_ThenValidationFails() { var target = new ReminderFormModel(); target.Title = "Title"; target.DueDistance = -5; var validationContext = new ValidationContext(target, null, null); var validationResults = new List <ValidationResult>(); bool actual = Validator.TryValidateObject(target, validationContext, validationResults, true); Assert.False(actual); Assert.Equal(1, validationResults[0].MemberNames.Count()); Assert.Equal("DueDistance", validationResults[0].MemberNames.First()); }
public void WhenCanAddReminderWithInvalidVehicleId_ThenReturnsValidationResult() { const int nonExistentVehicleId = -1; _vehicleRepositoryMock .Setup(vr => vr.GetVehicle(DefaultUserId, nonExistentVehicleId)) .Returns((Vehicle)null); var handler = new CanAddReminder(_vehicleRepositoryMock.Object); var formModel = new ReminderFormModel { VehicleId = nonExistentVehicleId, Title = "Test", DueDistance = 20000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.NotEmpty(result); }
public ActionResult Add(int vehicleId, ReminderFormModel reminder) { if ((reminder != null) && ModelState.IsValid) { var errors = Using <CanAddReminder>().Execute(CurrentUserId, reminder); ModelState.AddModelErrors(errors, "Add"); if (ModelState.IsValid) { Using <AddReminderToVehicle>().Execute(CurrentUserId, vehicleId, reminder); this.SetConfirmationMessage(Messages.ReminderController_ReminderAdded); return(RedirectToAction("List", "Reminder", new { vehicleId })); } } this.SetAlertMessage(Messages.PleaseFixInvalidData); return(new ContentTypeAwareResult(reminder)); }
public void WhenCanAddReminder_ThenReturnsEmptyCollection() { var vehicle1 = new Vehicle { VehicleId = DefaultVehicleId, Name = "vehicle1" }; _vehicleRepositoryMock .Setup(r => r.GetVehicle(DefaultUserId, DefaultVehicleId)) .Returns(vehicle1); var handler = new CanAddReminder(_vehicleRepositoryMock.Object); var formModel = new ReminderFormModel { VehicleId = DefaultVehicleId, Title = "Test", DueDistance = 20000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.Empty(result); }
public ActionResult Add(int vehicleId) { var vehicle = Using <GetVehicleById>() .Execute(CurrentUserId, vehicleId); if (vehicle == null) { throw new HttpException((int)HttpStatusCode.NotFound, Messages.ReminderController_VehicleNotFound); } var reminder = new ReminderFormModel { VehicleId = vehicleId, DueDateDay = DateTime.Now.Day.ToString(), DueDateMonth = DateTime.Now.Month.ToString(), DueDateYear = DateTime.Now.Year.ToString() }; return(new ContentTypeAwareResult(reminder)); }
public void WhenAddReminderWithValidReminder_ThenReturnsToReminderListView() { var formModel = new ReminderFormModel(); MockDefaultHandlers(); MockHandlerFor <CanAddReminder>( x => x .Setup(h => h.Execute(_defaultUser.UserId, formModel)) .Returns(new ValidationResult[] { })); MockHandlerFor <AddReminderToVehicle>( x => x.Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId, formModel))); ReminderController controller = GetTestableReminderController(); var result = (RedirectToRouteResult)controller.Add(defaultVehicleId, formModel); Assert.NotNull(result); Assert.Equal("List", result.RouteValues["action"]); Assert.Equal("Reminder", result.RouteValues["controller"]); }
public void WhenAddRemindersWithValidReminder_ThenUpdatesVehicleInRepository() { var formModel = new ReminderFormModel(); MockDefaultHandlers(); MockHandlerFor <CanAddReminder>( x => x .Setup(h => h.Execute(_defaultUser.UserId, formModel)) .Returns(new ValidationResult[] { })); var handler = MockHandlerFor <AddReminderToVehicle>( x => x .Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId, formModel)) .Verifiable("add handler not called")); var controller = GetTestableReminderController(); controller.Add(defaultVehicleId, formModel); handler.Verify(); }
public void WhenConstructed_ThenIsFulfilledIsFalse() { var target = new ReminderFormModel(); Assert.False(target.IsFulfilled); }