public async void CancelAppointment_WhenCalledWithInvalidAppointment_ReturnsBadRequest() { // Arrange var apptItem = new AppointmentEntity() { PatientID = 200, AppointmentDateTime = DateTime.Now.AddDays(20) //invalid appointment max today + 14 days }; var apptDtoItem = FakeBookings.GetFakeAppointmentDto(); var mapper = TestHelpers.Helpers.GetAppointmentMapperForTest(); _repo.CancelBookingAsync(apptItem).ReturnsForAnyArgs(false); var mycontroller = new AppointmentsController(_repo, _notify, mapper, _logger); var expectedCodeResult = new StatusCodeResult(400); // Act var sut = await mycontroller.CancelAppointment(apptDtoItem); var result = sut as BadRequestResult; // Assert Assert.NotNull(result); Assert.Equal(expectedCodeResult.StatusCode, result.StatusCode); }
public async void CreateAppointment_WhenCalledWithValidAppointment_ReturnsCreated() { // Arrange var apptItem = new AppointmentEntity() { PatientID = 200, AppointmentDateTime = DateTime.Now.AddDays(1) }; var apptDtoItem = FakeBookings.GetFakeAppointmentDto(); var mapper = TestHelpers.Helpers.GetAppointmentMapperForTest(); _repo.CreateBookingAsync(apptItem).ReturnsForAnyArgs(true); var mycontroller = new AppointmentsController(_repo, _notify, mapper, _logger); var expectedCodeResult = new StatusCodeResult(201); // Act var sut = await mycontroller.Create(apptDtoItem); var result = sut as StatusCodeResult; // Assert Assert.NotNull(result); Assert.Equal(expectedCodeResult.StatusCode, result.StatusCode); }
public async void EditTable_ChangeBookingFrom2to3_ReturnsFalse() { var tablesGetAll = FakeTables.GetAll3x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var booking1 = bookingsGetByDate.Where(b => b.CustomerName == "Jane").First(); _bookingRepository.GetByID(Arg.Any <Guid>()).Returns(booking1); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = new BookingRequestModel() { Seats = 4, Email = "*****@*****.**", CustomerName = "Jane", Time = DateTime.Now, PhoneNumber = "133337" }; Guid guid = new Guid("3BFD706B-869A-40DE-910A-4D0CDB0FA095"); var actual = await bookingService.EditBooking(bookingRequest, guid); actual.Success.Should().BeFalse(); }
public async void CreateAppointment_WhenCalledWithInvalidAppointment_ReturnsBadRequest() { // Arrange var apptItem = new AppointmentEntity() { PatientID = 200, AppointmentDateTime = DateTime.Now.AddDays(20) /* Invalid data: Rule is appointment can be booked upto two weeks ahead only */ }; var apptDtoItem = FakeBookings.GetFakeAppointmentDto(); var mapper = TestHelpers.Helpers.GetAppointmentMapperForTest(); _repo.CreateBookingAsync(apptItem).ReturnsForAnyArgs(false); var mycontroller = new AppointmentsController(_repo, _notify, mapper, _logger); var expectedCodeResult = new StatusCodeResult(400); // Act var sut = await mycontroller.Create(apptDtoItem); var result = sut as BadRequestObjectResult; // Assert Assert.NotNull(result); Assert.Equal(expectedCodeResult.StatusCode, result.StatusCode); }
public async void BookingEndToEndBefore_ReturnsTrue() { var tablesGetAll = FakeTables.GetAll3x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings2HoursLater(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = ValidBooking(0); var actual = await bookingService.ClientBookTable(bookingRequest); actual.Success.Should().BeTrue(); }
public async void TableFull_TableOverlap1Hour_returnsTrue() { var tablesGetAll = FakeTables.GetAll3x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings1Overlap(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = ValidBooking(0); var actual = await bookingService.AdminBookTable(bookingRequest); actual.Success.Should().BeFalse(); }
public async void TableAvailable_TableBookedBefore_returnsTrue() { var tablesGetAll = FakeTables.GetAll3x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings1Early(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = ValidBooking(0); var actual = await bookingService.AdminBookTable(bookingRequest); actual.Success.Should().BeTrue(); }
public async void BookTable_WithValidValues_CallsRepositoryAddAsync() { var tablesGetAll = FakeTables.GetAll4x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = ValidBooking(0); var actual = await bookingService.ClientBookTable(bookingRequest); await _bookingRepository.Received(1).AddAsync(Arg.Any <Booking>()); }
public void GetTodaysAppointments_WhenAppointmentForTodayIsFound_ReturnsOK() { // Arrange var bookings = FakeBookings.GetFakeBookingsAsList(); _repo.GetAppointmentsAsync().ReturnsForAnyArgs(bookings); var expectedCodeResult = new StatusCodeResult(200); // Act var sut = controller.GetTodaysAppointments(); var okResult = sut as OkObjectResult; // Assert Assert.NotNull(okResult); Assert.Equal(expectedCodeResult.StatusCode, okResult.StatusCode); }
public void GetTodaysAppointments_WhenAppointmentForTodayIsNotFound_ReturnsNotFound() { // Arrange var bookings = FakeBookings.GetFakeBookingsAsList(); //we will remove any today's bookings to test this scenario var notTodaysBookings = bookings.Where(x => x.AppointmentDateTime.Date != DateTime.Today); _repo.GetAppointmentsAsync().Returns(notTodaysBookings); var expectedCodeResult = new StatusCodeResult(404); // Act var sut = controller.GetTodaysAppointments(); var notFoundResult = sut as NotFoundObjectResult; // Assert Assert.NotNull(notFoundResult); Assert.Equal(expectedCodeResult.StatusCode, notFoundResult.StatusCode); }
public async void Booking_AvailableTableTooSmall_ReturnsFalse() { var tablesGetAll = FakeTables.GetAll4x2Tables(); var bookingsGetByDate = FakeBookings.Get3Bookings(); _bookingRepository.GetByDate(Arg.Any <DateTime>()).Returns(bookingsGetByDate); _tableRepository.GetAll().Returns(tablesGetAll); var bookingService = new BookingService(_bookingRepository, _tableRepository); var bookingRequest = new BookingRequestModel() { Seats = 4, Email = "*****@*****.**", CustomerName = "notCoolguy", Time = DateTime.Now, PhoneNumber = "3758374" }; var actual = await bookingService.ClientBookTable(bookingRequest); actual.Success.Should().BeFalse(); }