예제 #1
0
        public void Deveria_validar_reserva_com_um_clientes()
        {
            var car      = CarBuilder.Start().Build();
            var customer = CustomerBuilder.Start().Build();

            var flightReservation = CarReservationBuilder.Start().WithCar(car).WithCustomer(customer).Build();

            var result = flightReservation.CanRegister();

            result.Should().Be("Cadastro validado");
        }
예제 #2
0
        private void CreateCarReservation()
        {
            CarReservationSeed = CarReservationBuilder.Start().WithCustomer(CustomerBuilder.Start().Build()).Build();
            //CarReservationSeed.SetId();

            //foreach (var customer in CarReservationSeed.CarCustomers)
            //{
            //    customer.SetId();
            //}

            CarReservationSeed = _context.CarReservation.Add(CarReservationSeed).Entity;
        }
예제 #3
0
        public async Task Deveria_criar_reserva_de_pacote_de_viagem_com_sucesso()
        {
            int expected = 1;
            List <CarReservation> reservations = new List <CarReservation>()
            {
                CarReservationBuilder.Start().Build(),
            };


            var cmd = CarReservationRegisterCommandBuilder.Start().Build();

            var result = await _handler.Handle(cmd, It.IsAny <CancellationToken>());

            result.Should().BeTrue();
            _fakeRepository.Verify(x => x.Add(It.IsAny <CarReservation>()), Times.Once);
        }
예제 #4
0
        public async Task Deveria_atualizar_reserva_de_carro_com_sucesso()
        {
            int expected = 1;
            List <CarReservation> reservations = new List <CarReservation>()
            {
                CarReservationBuilder.Start().Build(),
                                  CarReservationBuilder.Start().Build()
            };

            _fakeRepository.Setup(x => x.GetAll()).ReturnsAsync(reservations);

            var cmd = CarReservationUpdateCommandBuilder.Start().Build();

            var result = await _handler.Handle(cmd, It.IsAny <CancellationToken>());

            result.Should().BeTrue();
            _fakeRepository.Verify(x => x.Update(It.IsAny <CarReservation>()), Times.Once);
        }
예제 #5
0
        public static void PopulateTestData(eFlightDbContext dbContext)
        {
            var flight        = FlightBuilder.Start().WithVacancies(40).Build();
            var hotel         = HotelBuilder.Start().Build();
            var car           = CarBuilder.Start().Build();
            var travelPackage = TravelPackageBuilder.Start().Build();

            dbContext.Flight.Add(flight);
            dbContext.Hotel.Add(hotel);
            dbContext.Car.Add(car);
            dbContext.TravelPackage.Add(travelPackage);

            dbContext.FlightReservation.Add(FlightReservationBuilder.Start().WithFlight(flight).Build());
            dbContext.HotelReservation.Add(HotelReservationBuilder.Start().WithHotel(hotel).Build());
            dbContext.CarReservation.Add(CarReservationBuilder.Start().WithCar(car).Build());
            dbContext.TravelPackageReservation.Add(TravelPackageReservationBuilder.Start().WithTravelPackage(travelPackage).Build());

            dbContext.SaveChanges();
        }
예제 #6
0
        public void Deveria_adicioanar_uma_reserva_de_carro_no_contexto()
        {
            //Arrange
            CarReservation carReservation = CarReservationBuilder.Start().Build();

            carReservation.SetId();

            foreach (var customer in carReservation.CarReservationCustomers)
            {
                customer.SetId();
            }

            //Action
            var carReservationAdd = _repository.Add(carReservation);

            //Assert
            var expectedCarReservation = Context.CarReservation.Find(carReservationAdd.Result.Id);

            expectedCarReservation.Should().NotBeNull();
        }
예제 #7
0
        public void Deveria_excluir_reserva_de_carro_com_sucesso()
        {
            int expected = 1;

            CarReservation reservation = CarReservationBuilder.Start()
                                         .WithInputDate(DateTime.Now.AddDays(11))
                                         .Build();

            _fakeRepository.Setup(x => x.GetById(It.IsAny <int>())).ReturnsAsync(reservation);

            var cmd = new CarReservationDeleteCommand()
            {
                CarReservationId = 1
            };

            var result = _handler.Handle(cmd, It.IsAny <CancellationToken>());

            result.Result.Should().BeTrue();
            _fakeRepository.Verify(x => x.GetById(cmd.CarReservationId), Times.Once);
            _fakeRepository.Verify(x => x.DeleteById(cmd.CarReservationId), Times.Once);
        }
예제 #8
0
        public async Task Deveria_recuperar_reserva_de_carro_com_sucesso()
        {
            int expected = 1;
            List <CarReservation> reservations = new List <CarReservation>()
            {
                CarReservationBuilder.Start().Build(),
                                  CarReservationBuilder.Start().Build()
            };

            _fakeRepository.Setup(x => x.GetAll()).ReturnsAsync(reservations);

            var cmd = new CarReservationLoadAllQuery();

            var result = await _handler.Handle(cmd, It.IsAny <CancellationToken>());

            result.Should().BeOfType <List <CarReservation> >();
            result.Should().HaveCount(2);
            _fakeRepository.Verify(x => x.GetAll(), Times.Once);

            //TODO: Verificar registro atualizado.
        }
예제 #9
0
        public void Nao_deveria_validar_reserva_quando_carro_ja_alugado_pro_periodo(int value1, int value2)
        {
            var customerRegistered       = CustomerBuilder.Start().WithName("Dienisson").Build();
            var carReservationRegistered = CarReservationBuilder.Start().WithCustomer(customerRegistered)
                                           .WithInputDate(DateTime.Now.AddDays(-2))
                                           .WithOutputDate(DateTime.Now.AddDays(10))
                                           .Build();


            var car      = CarBuilder.Start().WithCarReservation(carReservationRegistered).Build();
            var customer = CustomerBuilder.Start().WithId(value1).WithName("Dienisson").Build();

            var carReservationTwho = CarReservationBuilder.Start()
                                     .WithCustomer(customer)
                                     .WithInputDate(DateTime.Now)
                                     .WithOutputDate(DateTime.Now.AddDays(2))
                                     .WithCar(car)
                                     .Build();

            var result = carReservationTwho.CanRegister();

            result.Should().Be("Carro já reservado para o periodo");
        }
예제 #10
0
        public void DeleteCarReservation_IntegrationTest()
        {
            //arrange
            var carReservation = CarReservationBuilder.Start().WithInputDate(DateTime.Now.AddDays(11))
                                 .WithOutputDate(DateTime.Now.AddDays(20)).Build();

            CustomWebApplicationFactory <Startup> .appDb.CarReservation.Add(carReservation);

            CustomWebApplicationFactory <Startup> .appDb.SaveChanges();

            var flightCmd = new CarReservationDeleteCommand()
            {
                CarReservationId = carReservation.Id
            };
            var myContent     = JsonConvert.SerializeObject(flightCmd);
            var stringContent = new StringContent(myContent, UnicodeEncoding.UTF8, "application/json");

            //action
            var httpResponse = eFlight.Tests.Common.Extensions.HttpClientExtensions.DeleteAsync(_client, _url, stringContent).Result;

            httpResponse.EnsureSuccessStatusCode();

            CustomWebApplicationFactory <Startup> .appDb.CarReservation.Count().Should().Be(1);
        }
예제 #11
0
        public void Deveria_excluir_reserva_de_voo_com_mais_de_10_dias()
        {
            var flightReservation = CarReservationBuilder.Start().WithInputDate(DateTime.Now.AddDays(12)).Build();

            flightReservation.CanDelete().Should().BeTrue();
        }
예제 #12
0
        public void Nao_deveria_excluir_reserva_de_voo_com_menos_de_10_dias()
        {
            var carReservation = CarReservationBuilder.Start().WithInputDate(DateTime.Now.AddDays(9)).Build();

            carReservation.CanDelete().Should().BeFalse();
        }