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 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 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 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 WhenNeitherReminderDueDateNorDueDistanceSet_ThenValidationFails() { var target = new ReminderFormModel {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 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 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 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, _fillupRepo.Object); var formModel = new ReminderFormModel { VehicleId = DefaultVehicleId, Title = "Test", DueDistance = 20000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.Empty(result); }
public void WhenCanAddReminderWithInvalidVehicleId_ThenReturnsValidationResult() { const int nonExistentVehicleId = -1; _vehicleRepositoryMock .Setup(vr => vr.GetVehicle(DefaultUserId, nonExistentVehicleId)) .Returns((Vehicle)null); var handler = new CanAddReminder(_vehicleRepositoryMock.Object, _fillupRepo.Object); var formModel = new ReminderFormModel { VehicleId = nonExistentVehicleId, Title = "Test", DueDistance = 20000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.NotEmpty(result); }
public void WhenRemarksSetTo251Characters_ThenValidationFails() { var target = new ReminderFormModel(); target.Title = "Title"; target.Remarks = new string('1', 251); 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("Remarks", validationResults[0].MemberNames.First()); }
public void WhenCanAddReminderWithInvalidDueDistance_ThenReturnsValidationResult() { var vehicle1 = new Vehicle { VehicleId = DefaultVehicleId, Name = "vehicle1" }; _vehicleRepositoryMock .Setup(r => r.GetVehicle(DefaultUserId, DefaultVehicleId)) .Returns(vehicle1); _fillupRepo .Setup(r => r.GetFillups(DefaultVehicleId)) .Returns(new[] {new FillupEntry {Odometer = 7000}}); var handler = new CanAddReminder(_vehicleRepositoryMock.Object, _fillupRepo.Object); var formModel = new ReminderFormModel { VehicleId = DefaultVehicleId, Title = "Test", DueDistance = 5000 }; var result = handler.Execute(DefaultUserId, formModel); Assert.NotEmpty(result); }
public void WhenConstructed_ThenIsFulfilledIsFalse() { var target = new ReminderFormModel(); Assert.False(target.IsFulfilled); }
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 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 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 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 WhenRemarksSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.Remarks = "Remarks"; string actual = target.Remarks; Assert.Equal("Remarks", actual); }
public void WhenDueDistanceSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.DueDistance = 5; target.DueDistance = null; int? actual = target.DueDistance; Assert.Null(actual); }
public void WhenTitleSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.Title = "Title"; target.Title = null; string actual = target.Title; Assert.Null(actual); }
public void WhenRemarksSetToNull_ThenUpdatesValue() { var target = new ReminderFormModel(); target.Remarks = "Remarks"; target.Remarks = null; string actual = target.Remarks; Assert.Null(actual); }
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 WhenDueDistanceSet_ThenValueUpdated() { var target = new ReminderFormModel(); target.DueDistance = 5; int? actual = target.DueDistance; Assert.NotNull(actual); Assert.Equal(5, actual); }