@Test public void deveReceberUmLance() { Leilao leilao = new Leilao("Macbook Pro 15"); assertEquals(0, leilao.getLances().size()); leilao.propoe(new Lance(new Usuario("Steve Jobs"), 2000)); assertEquals(1, leilao.getLances().size()); assertEquals(2000, leilao.getLances().get(0).getValor(), 0.00001); }
@Test public void naoDeveAceitarDoisLancesSeguidosDoMesmoUsuario() { Usuario steveJobs = new Usuario("Steve Jobs"); Leilao leilao = new Leilao("Macbook Pro 15"); leilao.propoe(new Lance(steveJobs, 2000)); leilao.propoe(new Lance(steveJobs, 3000)); assertEquals(1, leilao.getLances().size()); assertEquals(2000.0, leilao.getLances().get(0).getValor(), 0.00001); }
@Override public void run() { System.out.println("Iniciando Lance Comum"); synchronized (incremento) { int valorDoIncremento = incremento.getValor(); synchronized (leilao) { leilao.darLance(valorDoIncremento); System.out.println("O valor do produto agora é " + leilao.getValorCorrente()); } } }
@Test public void naoDeveAceitarMaisDoQue5LancesDeUmMesmoUsuario() { Usuario steveJobs = new Usuario("Steve Jobs"); Usuario billGates = new Usuario("Bill Gates"); Leilao leilao = new Leilao("Macbook Pro 15"); leilao.propoe(new Lance(steveJobs, 2000)); leilao.propoe(new Lance(billGates, 3000)); leilao.propoe(new Lance(steveJobs, 4000)); leilao.propoe(new Lance(billGates, 5000)); leilao.propoe(new Lance(steveJobs, 6000)); leilao.propoe(new Lance(billGates, 7000)); leilao.propoe(new Lance(steveJobs, 8000)); leilao.propoe(new Lance(billGates, 9000)); leilao.propoe(new Lance(steveJobs, 10000)); leilao.propoe(new Lance(billGates, 11000)); leilao.propoe(new Lance(steveJobs, 12000)); assertEquals(10, leilao.getLances().size()); assertEquals( 11000.0, leilao.getLances().get(leilao.getLances().size() - 1).getValor(), 0.00001); }