1
resposta

Classe ContaCorrenteRepositorioTestes completa

Todas implementações da classe ContaCorrenteRepositorioTestes.

using Alura.ByteBank.Dados.Repositorio;
using Alura.ByteBank.Dominio.Entidades;
using Alura.ByteBank.Dominio.Interfaces.Repositorios;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using Xunit;

namespace Alura.ByteBank.Infraestrutura.Testes
{
    public class ContaCorrenteCorrenteRepositorioTestes
    {
        private readonly IContaCorrenteRepositorio _repositorio;
        public ContaCorrenteCorrenteRepositorioTestes()
        {
            var servico = new ServiceCollection();
            servico.AddTransient<IContaCorrenteRepositorio, ContaCorrenteRepositorio>();
            var provedor = servico.BuildServiceProvider();
            _repositorio = provedor.GetService<IContaCorrenteRepositorio>();
        }

        [Fact]
        public void TestaObterTodosContaCorrentes()
        {
            //Arrange
            //_repositorio = new ContaCorrenteRepositorio();

            //Act
            List<ContaCorrente> lista = _repositorio.ObterTodos();

            //Assert
            Assert.NotNull(lista);
            Assert.True((lista.Count != 0));
        }

        [Fact]
        public void TestaObterContaCorrentePorId()
        {
            //arrange

            //act
            var ContaCorrente = _repositorio.ObterPorId(1);

            //assert
            Assert.NotNull(ContaCorrente);
        }

        [Theory] // Conseguimos testar diversos parâmetros usando InLineData
        [InlineData(1)]
        [InlineData(2)]
        public void TestaObterContaCorrentesPorVariosId(int id) // testa 2 vezes com parâmetros diferentes
        {
            //Arrange

            //Act
            var ContaCorrente = _repositorio.ObterPorId(id);
            //Assert
            Assert.NotNull(ContaCorrente);
        }

        [Fact]
        public void TestaAtualizaSaldoDeterminadaConta()
        {
            //Arrange
            var conta = _repositorio.ObterPorId(1);
            double saldoNovo = 15;
            conta.Saldo = saldoNovo;

            //Act
            var atualizado = _repositorio.Atualizar(1, conta);

            //Assert
            Assert.True(atualizado);
        }

        [Fact]
        public void TestaInsereNovaContaCorrenteNoBancoDeDados()
        {
            //Arrange
            var conta = new ContaCorrente()
            {
                Saldo = 10,
                Identificador = Guid.NewGuid(),
                Cliente = new Cliente()
                {
                    Nome = "Kent Nelson",
                    CPF = "486.074.980-45",
                    Identificador = Guid.NewGuid(),
                    Profissao = "Bancário",
                    Id = 1,
                },
                Agencia = new Agencia()
                {
                    Nome = "Agencia Central Coast City",
                    Identificador = Guid.NewGuid(),
                    Id = 1,
                    Endereco = "Rua das flores, 25",
                    Numero = 247
                }
            };
            //Act
            var retorno = _repositorio.Adicionar(conta);

            //Assert
            Assert.True(retorno);
        }
    }
}
1 resposta

Kelvin, bom dia camarada!

Top d+ heim, continue focado nos estudos e realizando os exercícios propostos.

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software