Classe LeilaoTerminaPregaoData
using System.Collections;
using System.Collections.Generic;
using Alura.LeilaoOnline.Core;
namespace Alura.LeilaoOnline.Tests
{
public class LeilaoTerminaPregaoData : IEnumerable<object[]>
{
public IEnumerator<object[]> GetEnumerator()
{
var leilaoCenario1 = new Leilao("Peça");
var lancesCenario1 = new List<Lance> {
new Lance(new Interessada(string.Empty, leilaoCenario1), 800),
new Lance(new Interessada(string.Empty, leilaoCenario1), 900),
new Lance(new Interessada(string.Empty, leilaoCenario1), 1_000),
new Lance(new Interessada(string.Empty, leilaoCenario1), 1_100)
};
yield return new object[] {
lancesCenario1[3],
leilaoCenario1,
lancesCenario1
};
Leilao leilaoCenario2 = new Leilao("Peça");
var lancesCenario2 = new List<Lance> {
new Lance(new Interessada(string.Empty, leilaoCenario2), 800),
new Lance(new Interessada(string.Empty, leilaoCenario2), 900),
new Lance(new Interessada(string.Empty, leilaoCenario2), 1_000),
new Lance(new Interessada(string.Empty, leilaoCenario2), 700)
};
yield return new object[] {
lancesCenario2[2],
leilaoCenario2,
lancesCenario2
};
Leilao leilaoCenario3 = new Leilao("Peça");
var lancesCenario3 = new List<Lance> {
new Lance(new Interessada(string.Empty, leilaoCenario3), 800)
};
yield return new object[] {
lancesCenario3[0],
leilaoCenario3,
lancesCenario3
};
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
}
Método de teste na classe LeilaoTerminaPregao
[Theory]
[ClassData(typeof(LeilaoTerminaPregaoData))]
public void RetornaMaiorLanceDadoLeilaoComPeloMenosUmLance(Lance ganhador, Leilao leilao, List<Lance> lances)
{
// Arrange
foreach (var lance in lances)
{
leilao.RecebeLance(lance.Cliente, lance.Valor);
}
// Act
leilao.TerminaPregao();
//Assert
Assert.Equal(ganhador.Cliente, leilao.Ganhador.Cliente);
Assert.Equal(ganhador.Valor, leilao.Ganhador.Valor);
}
Seria assim?