Пример #1
0
        public async Task CreateAsync_ClubValidationFailed_ThrowsError()
        {
            // Arrange
            var fixture     = new Fixture();
            var reservation = new ReservationUpdateModel();
            var expected    = fixture.Create <string>();

            var clubGetService = new Mock <IClubGetService>();

            clubGetService
            .Setup(x => x.ValidateAsync(reservation))
            .Throws(new InvalidOperationException(expected));

            var groupGetService = new Mock <IGroupGetService>();

            groupGetService.Setup(x => x.ValidateAsync(reservation)).Throws(new InvalidOperationException(expected));


            var reservationDataAccess = new Mock <IReservationDataAccess>();

            var reservationGetService = new ReservationCreateService(reservationDataAccess.Object, clubGetService.Object, groupGetService.Object);

            // Act
            var action = new Func <Task>(() => reservationGetService.CreateAsync(reservation));

            // Assert
            await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected);

            reservationDataAccess.Verify(x => x.InsertAsync(reservation), Times.Never);
        }
Пример #2
0
        public async Task CreateAsync_DepartmentValidationSucceed_CreatesReservation()
        {
            // Arrange
            var reservation = new ReservationUpdateModel();
            var expected    = new Reservation();

            var clubGetService = new Mock <IClubGetService>();

            clubGetService.Setup(x => x.ValidateAsync(reservation));

            var groupGetService = new Mock <IGroupGetService>();

            groupGetService.Setup(x => x.ValidateAsync(reservation));

            var reservationDataAccess = new Mock <IReservationDataAccess>();

            reservationDataAccess.Setup(x => x.InsertAsync(reservation)).ReturnsAsync(expected);

            var reservationGetService = new ReservationCreateService(reservationDataAccess.Object, clubGetService.Object, groupGetService.Object);

            // Act
            var result = await reservationGetService.CreateAsync(reservation);

            // Assert
            result.Should().Be(expected);
        }