public async Task TestMethodsCalled()
        {
            var pedidoFacade = new PedidoFacade(
                _pedidoService,
                _clienteRepository,
                _pedidoRepository,
                _droneRepository,
                _pagamentoServiceFactory,
                _pedidoDroneRepository);

            var pedidos = SetupTests.GetPedidosList();

            _pedidoRepository.ObterPedidos(Arg.Any <int>())
            .Returns(pedidos);
            _clienteRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetCliente());
            _pedidoService.DroneAtendePedido(pedidos[0])
            .Returns(SetupTests.GetDroneDto());
            _droneRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetDrone());
            _pedidoRepository.FindByIdAsync(Arg.Any <string>())
            .Returns(pedidos[0]);

            await pedidoFacade.AssignDroneAsync();


            await _pedidoService.Received().DroneAtendePedido(Arg.Any <Pedido>());

            _pedidoRepository.Received().ReplaceOne(Arg.Any <Pedido>());
            await _pedidoDroneRepository.Received().AddAsync(Arg.Any <PedidoDrone>());
        }
        public async Task TestDroneNotFound()
        {
            var pedidoFacade = new PedidoFacade(
                _pedidoService,
                _clienteRepository,
                _pedidoRepository,
                _droneRepository,
                _pagamentoServiceFactory,
                _pedidoDroneRepository);

            var pedidos = SetupTests.GetPedidosList();

            _pedidoRepository.ObterPedidos(Arg.Any <int>())
            .Returns(pedidos);
            _clienteRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetCliente());

            _droneRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetDrone());
            _pedidoRepository.FindByIdAsync(Arg.Any <string>())
            .Returns(pedidos[0]);

            await pedidoFacade.AssignDroneAsync();


            _pedidoRepository.DidNotReceive().ReplaceOne(Arg.Any <Pedido>());
        }
示例#3
0
        public void TestToTempoGasto()
        {
            var drone = SetupTests.GetDrone();
            var date  = drone.ToTempoGasto(100);

            Assert.True(date.Hour == DateTime.Now.AddHours(2).Hour);
        }
示例#4
0
        public async Task Save()
        {
            var cliente = SetupTests.GetCliente(2);

            cliente = await _repository.AddAsync(cliente);

            var result = await _repository.UpdateAsync(cliente);

            Assert.True(cliente.Equals(result));
        }
        public void GetPagamentoServicoTest()
        {
            var client = Substitute.For <IHttpHandler>();
            var pagamentoServiceFactory = new PagamentoServiceFactory(SetupTests.GetPaymentSettings(), client);

            var service = pagamentoServiceFactory.GetPagamentoServico(ETipoPagamento.CARTAO);

            Assert.NotNull(service);
            Assert.IsAssignableFrom <IPagamentoServico>(service);
        }
示例#6
0
        public async Task CriarPedidoAsync()
        {
            var pedido = new PedidoFacade(_pedidoService, _clienteRepository, _pedidoRepository, _droneRepository, _pagamentoServiceFactory, _pedidoDroneRepository);

            _clienteRepository.GetByIdAsync(Arg.Any <int>()).Returns(SetupTests.GetCliente());
            _pagamentoServiceFactory.GetPagamentoServico(ETipoPagamento.CARTAO).Returns(_pagamentoServico);
            _pagamentoServico.RequisitaPagamento(Arg.Any <Pagamento>()).Returns(SetupTests.GetPagamento());

            var result = await pedido.CreatePedidoAsync(SetupTests.GetPedido());

            Assert.NotNull(result);
        }
        public async Task CriarDrone()
        {
            IDroneService _droneService = null;
            var           context       = ContextProvider <Drone> .GetContext(SetupTests.GetDrones());

            IDroneRepository _droneRepository = new MockDroneRepository(context);

            var droneFacade = new DroneFacade(_droneService, _droneRepository);


            var drone = new Drone(120, 80);
            await droneFacade.SaveDroneAsync(drone);

            Assert.True(drone.Perfomance == 160);
        }
        public async Task TestDroneAtendePedidoQuandoDroneExiste()
        {
            var droneService = new DroneService(_coordinateService,
                                                _pedidoDroneRepository,
                                                _droneRepository,
                                                _pedidoRepository);
            var pedidoService = new PedidoService(droneService, _coordinateService);

            _coordinateService.GetKmDistance(Arg.Any <Point>(), Arg.Any <Point>())
            .Returns(10);
            _pedidoDroneRepository.RetornaPedidosEmAbertoAsync().Returns(SetupTests.GetPedidoDrones(StatusEnvio.AGUARDANDO));
            _droneRepository.RetornaDroneStatus(Arg.Any <int>())
            .Returns(SetupTests.GetDroneStatusDto());
            var drone = await pedidoService.DroneAtendePedido(SetupTests.GetPedido());

            Assert.True(drone != null);
        }
示例#9
0
        public async Task ProcessaPagamentoTeste()
        {
            var pagamentoFacade = new PagamentoFacade(_pedidoRepository);

            var listaPagamentos = new List <PagamentoStatusDto>();

            listaPagamentos.Add(new PagamentoStatusDto()
            {
                Descricao   = "Pagamento Teste",
                IdPagamento = 1,
                Status      = EStatusPagamento.APROVADO
            });

            _pedidoRepository.PegaPedidoPendenteAsync(Arg.Any <string>()).Returns(SetupTests.GetPedido());

            await pagamentoFacade.ProcessaPagamentosAsync(listaPagamentos);

            await _pedidoRepository.Received().SaveAsync();
        }
示例#10
0
        public async Task RequisitaPagamentoTest()
        {
            var pagamento         = SetupTests.GetPagamento();
            var client            = Substitute.For <IHttpHandler>();
            var pgtoCartaoServico = new PagamentoCartaoServico(SetupTests.GetPaymentSettings(), client);


            var request     = JsonSerializer.Serialize(pagamento.ToPagamentoCreate());
            var httpContent = new StringContent(request, Encoding.UTF8, "application/json");
            var response    = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK, Content = httpContent
            };

            client.PostAsync(Arg.Any <string>(), Arg.Any <HttpContent>()).Returns(response);

            var result = await pgtoCartaoServico.RequisitaPagamento(pagamento);

            Assert.NotNull(pagamento);
        }
        public async Task TestPedidoNotFound()
        {
            var pedidoFacade = new PedidoFacade(
                _pedidoService,
                _clienteRepository,
                _pedidoRepository,
                _droneRepository,
                _pagamentoServiceFactory,
                _pedidoDroneRepository);

            _clienteRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetCliente());

            _droneRepository.GetByIdAsync(Arg.Any <int>())
            .Returns(SetupTests.GetDrone());

            await pedidoFacade.AssignDroneAsync();


            await _pedidoRepository.DidNotReceive().UpdateAsync(Arg.Any <Pedido>());
        }
示例#12
0
        public ClienteTest()
        {
            _context = ContextProvider <Cliente> .GetContext(SetupTests.GetClientes());

            _repository = new ClienteRepositoryFake(_context);
        }