public void Arrange()
        {
            _reservationEntity = new Reservation
            {
                Id                    = Guid.NewGuid(),
                Status                = 1,
                ConfirmedDate         = DateTime.UtcNow,
                CohortId              = 1,
                DraftApprenticeshipId = 1
            };

            _dbContextTransaction = new Mock <IDbContextTransaction>();
            _dbContext            = new Mock <DbContext>();
            _dataContext          = new Mock <IReservationsDataContext>();
            _dataFacade           = new Mock <DatabaseFacade>(_dbContext.Object);
            _dataFacade.Setup(x => x.BeginTransaction()).Returns(_dbContextTransaction.Object);

            _dataContext.Setup(x => x.Reservations).ReturnsDbSet(new List <Reservation>
            {
                _reservationEntity
            });

            _dataContext.Setup(x => x.Reservations.FindAsync(_reservationEntity.Id))
            .ReturnsAsync(_reservationEntity);

            _dataContext.Setup(x => x.Database)
            .Returns(_dataFacade.Object);

            _reservationRepository = new Data.Repository.ReservationRepository(_dataContext.Object);
        }
        public async Task <Reservation> CreateAccountReservation(Reservation reservation)
        {
            var reservationResult = await _reservationsDataContext.Reservations.AddAsync(reservation);

            _reservationsDataContext.SaveChanges();

            return(reservationResult.Entity);
        }
        public void Then_If_The_Reservation_Status_Being_Changed_To_Pending_When_It_Is_Not_Confirmed_And_Has_No_Audit_Values_An_Exception_Is_Thrown(ReservationStatus status)
        {
            var reservationId = Guid.NewGuid();

            _reservationEntity = new Reservation
            {
                Id            = reservationId,
                IsLevyAccount = false,
                Status        = (short)status
            };
            _dataContext.Setup(x => x.Reservations.FindAsync(_reservationEntity.Id)).ReturnsAsync(_reservationEntity);

            Assert.ThrowsAsync <DbUpdateException>(() => _reservationRepository.Update(reservationId, ReservationStatus.Pending));

            _dataContext.Verify(x => x.SaveChanges(), Times.Never);
        }
        public async Task Then_The_Reservation_Status_Check_Is_Ignored_For_Levy_Reservations(ReservationStatus status)
        {
            var reservationId = Guid.NewGuid();

            _reservationEntity = new Reservation
            {
                Id            = reservationId,
                IsLevyAccount = true,
                Status        = (short)status
            };
            _dataContext.Setup(x => x.Reservations.FindAsync(_reservationEntity.Id)).ReturnsAsync(_reservationEntity);

            await _reservationRepository.Update(reservationId, ReservationStatus.Pending);

            _dataContext.Verify(x => x.SaveChanges(), Times.Once);
        }
Beispiel #5
0
        public async Task ThenShouldReturnReservation_WithNonLevyPropertiesSet(
            Guid reservationId,
            Reservation reservation,
            [Frozen] Mock <IReservationRepository> repository,
            ReservationService service
            )
        {
            // Arrange
            repository
            .Setup(x => x.GetReservationById(It.IsAny <Guid>()))
            .ReturnsAsync(reservation);

            //Act
            var result = await service.GetReservation(reservationId);

            //Assert
            result.CourseName.Should().Be(reservation.Course.Title);
            result.CourseLevel.Should().Be(reservation.Course.Level);
        }
Beispiel #6
0
        public async Task ThenIfNoReservationFoundForAGivenIdReturnNull(
            Guid reservationId,
            [Frozen] Mock <IReservationRepository> repository,
            [Frozen] Mock <ILogger> logger,
            ReservationService service)
        {
            //Arrange
            Reservation reservation = null;

            repository
            .Setup(x => x.GetReservationById(It.IsAny <Guid>()))
            .ReturnsAsync(reservation);

            //Act
            var result = await service.GetReservation(reservationId);

            //Assert
            Assert.IsNull(result);
        }
Beispiel #7
0
 private static IndexedReservation MapReservation(Reservation entity, uint indexedProviderId)
 {
     return(new IndexedReservation
     {
         IndexedProviderId = indexedProviderId,
         ReservationId = entity.Id,
         AccountId = entity.AccountId,
         IsLevyAccount = entity.IsLevyAccount,
         CreatedDate = entity.CreatedDate,
         StartDate = entity.StartDate,
         ExpiryDate = entity.ExpiryDate,
         Status = entity.Status,
         CourseId = entity.CourseId,
         CourseTitle = entity.Course?.Title,
         CourseLevel = entity.Course?.Level,
         AccountLegalEntityId = entity.AccountLegalEntityId,
         ProviderId = entity.ProviderId,
         AccountLegalEntityName = entity.AccountLegalEntityName,
         TransferSenderAccountId = entity.TransferSenderAccountId,
         UserId = entity.UserId
     });
 }
Beispiel #8
0
 private void UnsetUnusedLevyReservationProperties(Reservation reservation)
 {
     reservation.Course   = null;
     reservation.CourseId = null;
 }