public void WhenOverdueListWhenNoReminders_ThenReturnsModelWithEmptyCollection() { ReminderController controller = GetTestableReminderController(); controller.HttpContext.Request.SetAjaxRequest(); controller.HttpContext.Request.SetJsonRequest(); MockHandlerFor <GetOverdueRemindersForUser>( x => x .Setup(h => h.Execute(_defaultUser.UserId)) .Returns(new ReminderModel[] { })); MockHandlerFor <GetVehicleById>( x => x .Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId)) .Returns(new VehicleModel( new Vehicle { VehicleId = defaultVehicleId, Name = "Vehicle" }, new VehicleStatisticsModel()))); var result = (JsonResult)controller.OverdueList(); var model = (JsonRemindersOverdueListViewModel)result.Data; var list = new List <OverdueReminderViewModel>(model.Reminders); Assert.Equal(0, list.Count()); }
public void WhenOverdueListInvalidUser_ThenThrows() { ReminderController controller = GetTestableReminderController(); controller.HttpContext.Request.SetAjaxRequest(); controller.HttpContext.Request.SetJsonRequest(); MockHandlerFor( () => new Mock <GetOverdueRemindersForUser>(null, null), x => x .Setup(h => h.Execute(_defaultUser.UserId)) .Throws(new BusinessServicesException("Unable to get overdue reminders."))); MockHandlerFor( () => new Mock <GetVehicleById>(null), x => x .Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId)) .Returns(new VehicleModel( new Vehicle { VehicleId = defaultVehicleId, Name = "Vehicle" }, new VehicleStatisticsModel()))); Assert.Throws <BusinessServicesException>(() => { controller.OverdueList(); }); }
public void WhenOverdueList_ThenReturnsModel() { ReminderController controller = GetTestableReminderController(); controller.HttpContext.Request.SetAjaxRequest(); controller.HttpContext.Request.SetJsonRequest(); var dueDate = new DateTime(2010, 12, 1, 0, 0, 0, DateTimeKind.Utc); var reminders = new[] { new ReminderModel { ReminderId = 1, VehicleId = defaultVehicleId, Title = "Reminder1", DueDate = dueDate }, new ReminderModel { ReminderId = 2, VehicleId = defaultVehicleId, Title = "Reminder2", DueDistance = 1000 }, new ReminderModel { ReminderId = 3, VehicleId = defaultVehicleId, Title = "Reminder3", DueDate = dueDate, DueDistance = 1000 }, }; MockHandlerFor( () => new Mock <GetOverdueRemindersForUser>(null, null), x => x .Setup(h => h.Execute(_defaultUser.UserId)) .Returns(reminders)); MockHandlerFor( () => new Mock <GetVehicleById>(null), x => x .Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId)) .Returns(new VehicleModel( new Vehicle { VehicleId = defaultVehicleId, Name = "Vehicle" }, new VehicleStatisticsModel()))); var result = (JsonResult)controller.OverdueList(); var model = (JsonRemindersOverdueListViewModel)result.Data; var list = new List <OverdueReminderViewModel>(model.Reminders); Assert.Equal(reminders.Length, model.Reminders.Count()); Assert.Equal("Reminder1 | Vehicle @ 12/1/2010", list[0].FullTitle); Assert.Equal("Reminder2 | Vehicle @ 1000", list[1].FullTitle); Assert.Equal("Reminder3 | Vehicle @ 12/1/2010 or 1000", list[2].FullTitle); }
public void WhenOverdueListWithNonJsonCall_ThenReturnsEmpty() { ReminderController controller = GetTestableReminderController(); controller.HttpContext.Request.SetAjaxRequest(); // no json set on context var dueDate = new DateTime(2010, 12, 1, 0, 0, 0, DateTimeKind.Utc); var reminders = new[] { new ReminderModel { ReminderId = 1, VehicleId = defaultVehicleId, Title = "Reminder1", DueDate = dueDate }, new ReminderModel { ReminderId = 2, VehicleId = defaultVehicleId, Title = "Reminder2", DueDistance = 1000 }, new ReminderModel { ReminderId = 3, VehicleId = defaultVehicleId, Title = "Reminder3", DueDate = dueDate, DueDistance = 1000 }, }; MockHandlerFor( () => new Mock <GetOverdueRemindersForUser>(null, null), x => x .Setup(h => h.Execute(_defaultUser.UserId)) .Returns(reminders)); MockHandlerFor( () => new Mock <GetVehicleById>(null), x => x .Setup(h => h.Execute(_defaultUser.UserId, defaultVehicleId)) .Returns(new VehicleModel( new Vehicle { VehicleId = defaultVehicleId, Name = "Vehicle" }, new VehicleStatisticsModel()))); ActionResult result = controller.OverdueList(); Assert.IsType <EmptyResult>(result); }