Meu teste que não deve aceitar mais de 5 lances de um mesmo usuário não funciona mesmo com o método implementado. O teste:
[Test]
        public void NaoDeveAceitarMaisQue5LancesDeUmMesmoUsuario()
        {
            Leilao leilao = new Leilao("Nintendo Switch");
            Assert.AreEqual(0, leilao.Lances.Count);
            Usuario jose = new Usuario("Jose");
            Usuario maria = new Usuario("Maria");
            leilao.Propoe(new Lance(jose, 1000));
            leilao.Propoe(new Lance(maria, 2000));
            leilao.Propoe(new Lance(jose, 3000));
            leilao.Propoe(new Lance(maria, 4000));
            leilao.Propoe(new Lance(jose, 5000));
            leilao.Propoe(new Lance(maria, 6000));
            leilao.Propoe(new Lance(jose, 7000));
            leilao.Propoe(new Lance(maria, 8000));
            leilao.Propoe(new Lance(jose, 9000));
            leilao.Propoe(new Lance(maria, 10000));
            leilao.Propoe(new Lance(jose, 11000));
            Assert.AreEqual(10, leilao.Lances.Count);
            Assert.AreEqual(10000, leilao.Lances[leilao.Lances.Count - 1]); //ultimo lance deve ser igual a 10000
        }
O método:
public void Propoe(Lance lance)
        {
            int total=0;
            foreach(var l in Lances)
            {
                if(l.Usuario.Equals(l.Usuario)) //se o usuario for igual ao usuario corrente
                {
                    total++;
                }
            }
            //se for o primeiro lance OU se o usuario corrente nao for igual ao usuario anterior
            if (Lances.Count == 0 || (!ultimoLance().Usuario.Equals(lance.Usuario)) && total<5)
            {
                Lances.Add(lance);
            }           
        }
        private Lance ultimoLance()
        {
            return Lances[Lances.Count - 1];
        }
O erro: Expected: 10 But was: 5 na linha Assert.AreEqual(10, leilao.Lances.Count);