コード例 #1
0
        public async Task Deve_salvar_um_evento_de_pedido_criado_ao_criar_pedido()
        {
            var produto            = _faker.Random.Word();
            var quantidade         = _faker.Random.Int(0);
            var valor              = _faker.Random.Decimal();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = _faker.Random.Int(0).ToString(),
                Nome      = _faker.Person.FirstName,
                CVV       = _faker.Random.Int(100, 999).ToString(),
                Expiracao = "03/27"
            };
            var cartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);
            var pedidoDto       = new PedidoDto
            {
                Produto            = produto,
                Quantidade         = quantidade,
                Valor              = valor,
                CartaoDeCreditoDto = cartaoDeCreditoDto
            };
            var pedidoCriado = PedidoBuilder.Novo().ComProduto(produto).ComQuantidade(quantidade).ComValor(valor)
                               .ComCartaoDeCredito(cartaoDeCredito).Criar();
            var eventoEsperado = new PedidoCriadoEvento(pedidoCriado.Id, pedidoCriado.CartaoDeCredito.Nome,
                                                        pedidoCriado.CartaoDeCredito.Numero, pedidoCriado.Produto, pedidoCriado.Valor);

            await _criacaoDePedido.Criar(pedidoDto);

            _eventoRepositorio.Verify(pr => pr.Salvar(It.Is <PedidoCriadoEvento>(evento
                                                                                 => evento.ToExpectedObject(ctx => ctx.Ignore(p => p.Id)).Matches(eventoEsperado))));
        }
コード例 #2
0
        public void Deve_mapear_pedido()
        {
            var produto            = _faker.Random.Word();
            var quantidade         = _faker.Random.Int(0);
            var valor              = _faker.Random.Decimal();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = _faker.Random.Int(0).ToString(),
                Nome      = _faker.Person.FirstName,
                CVV       = _faker.Random.Int(100, 999).ToString(),
                Expiracao = "03/27"
            };
            var cartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);
            var pedidoDto       = new PedidoDto
            {
                Produto            = produto,
                Quantidade         = quantidade,
                Valor              = valor,
                CartaoDeCreditoDto = cartaoDeCreditoDto
            };
            var pedidoEsperado = PedidoBuilder.Novo().ComProduto(produto).ComQuantidade(quantidade).ComValor(valor)
                                 .ComCartaoDeCredito(cartaoDeCredito).Criar();

            var pedidoObtido = MapeadorDePedido.Mapear(pedidoDto);

            pedidoEsperado.ToExpectedObject(ctx => ctx.Ignore(p => p.Id)).ShouldMatch(pedidoObtido);
        }
コード例 #3
0
        public void Deve_retornar_nulo_quando_dto_for_nulo()
        {
            CartaoDeCreditoDto cartaoDeCreditoDtoInvalido = null;

            var cartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDtoInvalido);

            Assert.Null(cartaoDeCredito);
        }
コード例 #4
0
        public async Task AtualizarCartaoDeCredito(int idDoPedido, CartaoDeCreditoDto cartaoDeCreditoDto)
        {
            var novoCartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);
            var pedido = _pedidoRepositorio.ObterPedidoPeloId(idDoPedido);

            pedido.AtualizarCartaoDeCredito(novoCartaoDeCredito);
            await _pedidoRepositorio.AtualizarPedido(pedido);

            await NotificarAlteracaoDeCartaoDeCreditoAoServicoDePagamento(pedido, novoCartaoDeCredito);
        }
コード例 #5
0
        public void Deve_mapear_o_cartao_de_credito()
        {
            var          numero    = _faker.Random.Int(0).ToString();
            var          nome      = _faker.Person.FirstName;
            var          cvv       = _faker.Random.Int(100, 999).ToString();
            const string expiracao = "03/27";
            var          cartaoDeCreditoEsperado = CartaoDeCreditoBuilder.Novo().ComNome(nome).ComNumero(numero).ComCvv(cvv)
                                                   .ComExpiracao(expiracao).Criar();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = numero,
                Nome      = nome,
                CVV       = cvv,
                Expiracao = expiracao,
            };

            var cartaoDeCreditoObtido = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);

            cartaoDeCreditoEsperado.ToExpectedObject().ShouldMatch(cartaoDeCreditoObtido);
        }