def test_quando_o_leilao_tiver_3_lances_deve_retorar_o_maior_e_o_menor_lance( self): user1 = Usuario('Cristiano') user2 = Usuario('Astolfo') user3 = Usuario('Maria') lance_user1 = Lance(user1, 150.0) lance_user2 = Lance(user2, 100.0) lance_user3 = Lance(user3, 200.0) leilao = Leilao('Notebook') leilao.lances.append(lance_user1) leilao.lances.append(lance_user2) leilao.lances.append(lance_user3) avaliador = Avaliador() avaliador.avalia(leilao) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, avaliador.menor_lance) self.assertEqual(maior_valor_esperado, avaliador.maior_lance)
def test_quando_leilao_tiver_um_lance_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance( self): user1 = Usuario('Cristiano') lance_user1 = Lance(user1, 150.0) leilao = Leilao('Notebook') leilao.lances.append(lance_user1) avaliador = Avaliador() avaliador.avalia(leilao) self.assertEqual(150.0, avaliador.menor_lance) self.assertEqual(150.0, avaliador.maior_lance)
def test_avalia2(self): gui = Usuario("Gui") yuri = Usuario("Yuri") lance_do_yuri = Lance(yuri, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao("Celular") leilao.lances.append(lance_do_gui) leilao.lances.append(lance_do_yuri) avaliador = Avaliador() avaliador.avalia(leilao) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, avaliador.menor_lance) self.assertEqual(maior_valor_esperado, avaliador.maior_lance)
def test_quando_adicionados_em_ordem_crescente_deve_retorar_o_maior_e_o_menor_de_um_lance( self): user1 = Usuario('Cristiano') user2 = Usuario('Astolfo') lance_user2 = Lance(user2, 100.0) lance_user1 = Lance(user1, 150.0) leilao = Leilao('Notebook') leilao.lances.append(lance_user2) leilao.lances.append(lance_user1) avaliador = Avaliador() avaliador.avalia(leilao) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, avaliador.menor_lance) self.assertEqual(maior_valor_esperado, avaliador.maior_lance)
from dominio import Usuario, Lance, Leilao gui = Usuario("Gui") yuri = Usuario("Yuri") lance_do_yuri = Lance(yuri, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao("Celular") leilao.propoe(lance_do_yuri) leilao.propoe(lance_do_gui) for lance in leilao.lances: print(f"O usuario {lance.usuario.nome} deu um lance de {lance.valor}") print(f"O maior lance foi {leilao.maior_lance} e o menor lance foi {leilao.menor_lance}")
from dominio import Usuario, Lance, Leilao, Avaliador igor = Usuario('igor') hugo = Usuario('hugo') lance_do_hugo = Lance(hugo, 100.0) lance_do_igor = Lance(igor, 150.0) leilao = Leilao('Celular') leilao.lances.append(lance_do_hugo) leilao.lances.append(lance_do_igor) for lance in leilao.lances: print(f'O usuario {lance.usuario.nome} deu um lance de {lance.valor}') avaliador = Avaliador() avaliador.avalia(leilao) print(f'O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}')
def setUp(self): self.gui = Usuario('Gui', 500) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular')
class TestLeilao(TestCase): def setUp(self): self.gui = Usuario('Gui', 500) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente( self): with self.assertRaises(LanceInvalido): yuri = Usuario('Yuri', 500) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) def test_nao_deve_permitir_propor_um_lance_ordem_decresente(self): yuri = Usuario('Yuri', 500) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances( self): yuri = Usuario('Yuri', 500) lance_do_yuri = Lance(yuri, 100.0) vini = Usuario('Vini', 500) lance_do_vini = Lance(vini, 200.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lance(self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(1, len(self.leilao.lances)) def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente( self): yuri = Usuario("Yuri", 500) lance_do_yuri = Lance(yuri, 200) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) quantidade_lances = len(self.leilao.lances) self.assertEqual(2, quantidade_lances) def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self): lance2 = Lance(self.gui, 200) with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance2)
from dominio import Usuario, Leilao, Lance, Avaliador leo = Usuario("Leo") vini = Usuario("Vini") joice = Usuario("Joice") lance_leo = Lance(leo, 300.0) lance_vini = Lance(vini, 1300.0) lance_joice = Lance(joice, 30.0) leilao = Leilao("Iphone XS") leilao.lances.append(lance_leo) leilao.lances.append(lance_vini) leilao.lances.append(lance_joice) avaliador = Avaliador() avaliador.avalia(leilao) print(f'Maior lance: {avaliador.maior_lance}') print(f'Menor lance: {avaliador.menor_lance}')
from dominio import Usuario, Lance, Leilao, Avaliador david = Usuario("David") Ana = Usuario("Ana") lance_david = Lance(david, 200) lance_ana = Lance(Ana, 120) leilao = Leilao("Bicicleta") leilao.lances.append(lance_ana) leilao.lances.append(lance_david) for lance in leilao.lances: print('O Usuario: {} fez o lance de {}:'.format(lance.usuario.nome, lance.valor)) avaliador = Avaliador() avaliador.avalia(leilao) print( f'O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}' )
class TestAvaliador(TestCase): # test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_de_um_lance def setUp(self): self.igor = Usuario('igor') self.lance_do_igor = Lance(self.igor, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente( self): hugo = Usuario('hugo') lance_do_hugo = Lance(hugo, 100.0) self.leilao.propoe(lance_do_hugo) self.leilao.propoe(self.lance_do_igor) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_decrescente( self): hugo = Usuario('hugo') lance_do_hugo = Lance(hugo, 100.0) self.leilao.propoe(self.lance_do_igor) self.leilao.propoe(lance_do_hugo) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.leilao.propoe(self.lance_do_igor) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances( self): hugo = Usuario('hugo') lance_do_hugo = Lance(hugo, 100.0) marcela = Usuario('marcela') lance_da_marcela = Lance(marcela, 200.0) self.leilao.propoe(lance_do_hugo) self.leilao.propoe(self.lance_do_igor) self.leilao.propoe(lance_da_marcela) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance)
class TestLeilao(TestCase): def setUp(self): self.leo = Usuario("Leo", 500.0) self.lance_leo = Lance(self.leo, 100.00) self.leilao = Leilao("Celular") def test_quando_adicionado_lances_ordem_crescente_deve_retornar_maior_e_menor_valor_do_lance(self): lais = Usuario("Lais", 500.0) lance_lais = Lance(lais, 150.0) self.leilao.propoe(self.lance_leo) self.leilao.propoe(lance_lais) print(self.leilao.maior_lance) print(self.leilao.menor_lance) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_quando_adicionado_lances_ordem_decrescente_nao_deve_permitir_propor_lance(self): with self.assertRaises(LanceInvalido): lais = Usuario("Lais", 500.0) lance_lais = Lance(lais, 150.0) self.leilao.propoe(lance_lais) self.leilao.propoe(self.lance_leo) print(self.leilao.maior_lance) print(self.leilao.menor_lance) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_quando_adicionado_apenas_um_lance_deve_retornar_o_mesmo_valor_de_maior_e_menor_lance(self): self.leilao.propoe(self.lance_leo) print(self.leilao.maior_lance) print(self.leilao.menor_lance) menor_valor_esperado = 150.0 maior_valor_esperado = 150.0 def test_quando_adicionado_tres_lances_deve_retornar_maior_e_menor_valor_do_lance(self): lais = Usuario("Lais", 500.0) lance_lais = Lance(lais, 150.0) leona = Usuario("Leona", 500.0) self.lance_leo = Lance(self.leo, 100.00) lance_leona = Lance(leona, 200.0) lance_lais = Lance(lais, 150.0) self.leilao.propoe(self.lance_leo) self.leilao.propoe(lance_lais) self.leilao.propoe(lance_leona) print(self.leilao.maior_lance) print(self.leilao.menor_lance) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_quando_nao_tiver_lances_deve_permitir_lances(self): self.leilao.propoe(self.lance_leo) quantidade_lances_recebido = len(self.leilao.lances) self.assertEqual(1, quantidade_lances_recebido) def test_quando_ultimo_usuario_for_diferente_deve_permitir_lance(self): lais = Usuario("Lais", 500.0) lance_lais = Lance(lais, 150.0) self.leilao.propoe(self.lance_leo) self.leilao.propoe(lance_lais) quantidade_lances_recebido = len(self.leilao.lances) self.assertEqual(2, quantidade_lances_recebido) def test_quando_ultimo_usuario_for_igual_nao_deve_permitir_lance(self): lance_leo_200 = Lance(self.leo, 200) with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_leo) self.leilao.propoe(lance_leo_200)
def leilao(): return Leilao('Celular')
from dominio import Cliente, Lance, Leilao phyl = Cliente("Phyl") igor = Cliente("Igor") luana = Cliente("Luana") sarah = Cliente("Sarah") lance_do_phyl = Lance(phyl, 150.0) lance_do_igor = Lance(igor, 100.0) lance_da_luana = Lance(luana, 80.0) lance_da_sarah = Lance(sarah, 200.0) leilao = Leilao("1 Saco de Arroz de 5kg") leilao.propoe(lance_do_igor) leilao.propoe(lance_do_phyl) leilao.propoe(lance_da_luana) leilao.propoe(lance_da_sarah) for lance in leilao.lances: print(f"O cliente {lance.cliente.nome} deu um lance de {lance.valor}.") print( f"O menor lance foi de {leilao.menor_lance} e o maior lance foi de {leilao.maior_lance}" )
def leilao(): return Leilao("Celular")
from dominio import Usuario, Lance, Leilao gui = Usuario("Gui") yuri = Usuario("Yuri") lance_do_yuri = Lance(yuri, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao("Celular") leilao.lances.append(lance_do_yuri) leilao.lances.append(lance_do_gui) for lance in leilao.lances: print(f"O usuário {lance.usuario.nome} deu um lance de {lance.valor}") avaliador = Avaliador() avaliador.avalia(leilao) print( f"O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}" )
def setUp(self): self.leo = Usuario("Leo", 500.0) self.lance_leo = Lance(self.leo, 100.00) self.leilao = Leilao("Celular")
def setUp(self): self.igor = Usuario('igor') self.lance_do_igor = Lance(self.igor, 150.0) self.leilao = Leilao('Celular')
def setUp(self): self.gui = Usuario("Gui", 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao("Celular")
from dominio import Usuario, Lance, Leilao gui = Usuario('Gui') yuri = Usuario('Yuri') lance_do_yuri = Lance(yuri, 100.0) lance_do_gui = Lance(gui, 150.0) leilao = Leilao('Celular') leilao.propoe(lance_do_yuri) leilao.propoe(lance_do_gui) for lance in leilao.lances: print(lance)
class TestLeilao(TestCase): # herda de TestCase # método setUp é herdado da classe TestCase # quando coloca self na frente do atributo, significa que é um atributo da classe # setUp método da classe unittest que já invoca o setup antes de todos os testes # serve para isolar o cenário comum de todos os testes # sempre cria um objeto novo a cada teste invocado def setUp(self): self.gui = Usuario('Gui', 500.0) self.lance_do_gui = Lance(self.gui, 150.0) self.leilao = Leilao('Celular') def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) menor_valor_esperado = 100.0 maior_valor_esperado = 150.0 # método para trabalhar com teste self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) def test_nao_deve_permitir_propor_um_lance_em_ordem_descrescente(self): with self.assertRaises(LanceInvalido): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 100.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance( self): self.leilao.propoe(self.lance_do_gui) self.assertEqual(150.0, self.leilao.menor_lance) self.assertEqual(150.0, self.leilao.maior_lance) def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances( self): yuri = Usuario('Yuri', 500.0) vini = Usuario('Vini', 500.0) lance_do_yuri = Lance(yuri, 100.0) lance_do_vini = Lance(vini, 200.0) self.leilao.propoe(lance_do_yuri) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_vini) menor_valor_esperado = 100.0 maior_valor_esperado = 200.0 # método para trabalhar com teste self.assertEqual(menor_valor_esperado, self.leilao.menor_lance) self.assertEqual(maior_valor_esperado, self.leilao.maior_lance) # se o leilão não tiver lances, deve permitir propor um lance def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances( self): self.leilao.propoe(self.lance_do_gui) quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(1, quantidade_de_lances_recebido) # se o último usuário for diferente, deve permitir propor o lance def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente( self): yuri = Usuario('Yuri', 500.0) lance_do_yuri = Lance(yuri, 200.0) self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_yuri) quantidade_de_lances_recebido = len(self.leilao.lances) self.assertEqual(2, quantidade_de_lances_recebido) # se o último usuário for o mesmo, não deve permitir propor o lance def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self): lance_do_gui_200 = Lance(self.gui, 200.0) # uma forma de tratar a exceção # try: # self.leilao.propoe(self.lance_do_gui) # self.leilao.propoe(lance_do_gui_200) # # se executou as linhas de cima, deveria ter dado excessão # self.fail(msg='Não lançou exceção') # # dado a exceção e não executado as linhas de cima, faço a verificação abaixo. # except ValueError: # quantidade_de_lances_recebidos = len(self.leilao.lances) # self.assertEqual(1, quantidade_de_lances_recebidos) # outra forma de tratar exceção usando método do testcase # espera um erro with self.assertRaises(LanceInvalido): self.leilao.propoe(self.lance_do_gui) self.leilao.propoe(lance_do_gui_200)