Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
                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();
                }
Exemple #4
0
        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);
        }
Exemple #5
0
            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();
            }
Exemple #6
0
                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();
                }
Exemple #7
0
                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();
                }
Exemple #8
0
            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>());
            }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
            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();
            }