Пример #1
0
        public async void PedidoService_Adicionar_DeveExecutarComSucesso()
        {
            // Arrange
            var registro = _pedidoTestsAutoMockerFixture.GerarRegistroValido();

            // Act
            var retorno = await _pedidoService.Adicionar(registro);

            // Assert
            Assert.True(retorno);
            Assert.True(registro.EhValido());
            _pedidoTestsAutoMockerFixture.Mocker.GetMock <IPedidoRepository>().Verify(r => r.Adicionar(registro), Times.Once);
        }
        public void DadoPedidoComInformacaoValidaDeveIncluirNoBanco()
        {
            //Arrange
            var pedidoId  = Guid.NewGuid();
            var clienteId = Guid.NewGuid();
            var cliente   = new Cliente()
            {
                Id       = clienteId,
                Nome     = "Carlos",
                Endereco = "Rua Teste",
            };

            var pedidoPizza       = new PedidoPizza();
            var listaPedidoPizzas = new List <PedidoPizza>();
            var pizza             = new Pizza();

            pizza.Valor = 50;

            for (int i = 0; i < 2; i++)
            {
                pedidoPizza.TipoPizza = TipoPizza.Meia;
                pedidoPizza.Pizza     = pizza;
                listaPedidoPizzas.Add(pedidoPizza);
            }

            var pedido = new Pedido()
            {
                Id           = pedidoId,
                ClienteId    = clienteId,
                PedidoPizzas = listaPedidoPizzas
            };

            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("DbHungryPizzaContext")
                          .Options;
            var contexto          = new ApplicationDbContext(options);
            var clienteRepository = new ClienteRepository(contexto);
            var pedidoRepository  = new PedidoRepository(contexto);

            var notificador    = new Notificador();
            var clienteService = new ClienteService(clienteRepository, notificador);
            var pedidoService  = new PedidoService(pedidoRepository, clienteRepository, notificador);

            //Act
            var retornoCliente = clienteService.Adicionar(cliente);
            var retornoPedido  = pedidoService.Adicionar(pedido);

            //Assert
            var cadastroPedido = pedidoRepository.ObterPorId(pedidoId);

            Assert.NotNull(cadastroPedido.Result);
        }