O código abaixo é do professor. No entanto, como é possível passar já que ao terminar o for e entrar no ACT, é chamado novamente o método que irá contabilizar mais uma oferta. Com isso, o count sempre somará uma oferta a mais do que a quantidade esperada.
[Theory]
[InlineData(4, new double[] { 1000, 1200, 1400, 1300 })]
[InlineData(2, new double[] { 800, 900 })]
public void NaoPermiteNovosLancesDadoLeilaoFinalizado(
int qtdeEsperada, double[] ofertas)
{
//Arranje - cenário
var leilao = new Leilao("Van Gogh");
var fulano = new Interessada("Fulano", leilao);
var maria = new Interessada("Maria", leilao);
leilao.IniciaPregao();
for (int i = 0; i < ofertas.Length; i++)
{
var valor = ofertas[i];
if ((i%2)==0)
{
leilao.RecebeLance(fulano, valor);
}
else
{
leilao.RecebeLance(maria, valor);
}
}
leilao.TerminaPregao();
//Act - método sob teste
leilao.RecebeLance(fulano, 1000);
//Assert
var qtdeObtida = leilao.Lances.Count();
Assert.Equal(qtdeEsperada, qtdeObtida);
}