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);
}
}
}