Quando eu adiciono
avaliador.Setup(a => a.maiorValor).Returns(2500);
estou forçando com que o "maiorValor" seja 2500.
E no final do código, é feito o assert:
Assert.AreEqual(2500, retorno.valor);
Com isso, como estou forçando que o maiorValor seja 2500, independente dos valores dos lances, o teste sempre vai passar como SUCESSO.
Esse avaliador.Setup está errado, não?