public void TestCreateCallsNotificationServiceSendWelcomeNotification()
        {
            // Arrange
            Reservation testReservation = reservations[0];
            String      hotelID         = "ABCD1234";

            // Act
            _controller.Create(testReservation, hotelID);

            // Assert
            _notificationService.Verify(service => service.SendWelcomeNotification(testReservation));
        }
        public async Task Then_The_Reservation_Is_Created_From_The_Request_And_Returned()
        {
            //Arrange
            var reservation = new Api.Models.Reservation
            {
                Id                      = _expectedReservationId,
                AccountId               = ExpectedAccountId,
                StartDate               = _expectedStartDate,
                CourseId                = _expectedCourseId,
                ProviderId              = _expectedProviderId,
                AccountLegalEntityId    = _expectedAccountLegalEntityId,
                AccountLegalEntityName  = ExpectedAccountLegalEntityName,
                IsLevyAccount           = ExpectedIsLevyAccount,
                TransferSenderAccountId = ExpectedTransferSenderAccountId,
                UserId                  = _expectedUserId
            };


            //Act
            var actual = await _reservationsController.Create(reservation);

            //Assert
            _mediator.Verify(m => m.Send(It.Is <CreateAccountReservationCommand>(command =>
                                                                                 command.CourseId.Equals(_expectedCourseId) &&
                                                                                 command.ProviderId.Equals(_expectedProviderId) &&
                                                                                 command.AccountLegalEntityId.Equals(_expectedAccountLegalEntityId) &&
                                                                                 command.AccountId.Equals(ExpectedAccountId) &&
                                                                                 command.StartDate.Equals(_expectedStartDate) &&
                                                                                 command.Id.Equals(_expectedReservationId) &&
                                                                                 command.IsLevyAccount.Equals(ExpectedIsLevyAccount) &&
                                                                                 command.AccountLegalEntityName.Equals(ExpectedAccountLegalEntityName) &&
                                                                                 command.UserId.Equals(_expectedUserId) &&
                                                                                 command.TransferSenderAccountId.Equals(ExpectedTransferSenderAccountId)
                                                                                 ),
                                         It.IsAny <CancellationToken>()), Times.Once);

            Assert.IsNotNull(actual);
            var result = actual as CreatedResult;

            Assert.IsNotNull(result?.StatusCode);
            Assert.AreEqual(HttpStatusCode.Created, (HttpStatusCode)result.StatusCode);
            Assert.IsNotNull(result.Value);
            var actualReservations = result.Value as Domain.Reservations.Reservation;

            Assert.AreEqual(_accountReservationsResult.Reservation, actualReservations);
            Assert.AreEqual($"api/reservations/{_expectedReservationId}", result.Location);
        }
        public void Create_ReturnsView()
        {
            ViewResult result = _controller.Create() as ViewResult;

            Assert.AreEqual("Create", result.ViewName);
        }