Beispiel #1
0
    def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance(
            self):
        self.setUp()

        lance = Lance(self.gui, 150.0)

        leilao = Leilao('celular')
        leilao.propoe(lance)

        menor_valor_esperado = 150.0
        maior_valor_esperado = 150.0

        self.assertEqual(menor_valor_esperado, leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, leilao.maior_lance)
Beispiel #2
0
class TestAvaliador(TestCase):
    def setUp(self):
        #Primeirometodo a ser executado
        self.gui = Usuario('Gui')
        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_adicionads_em_ordem_crescente(
            self):
        yuri = Usuario('Yuri')
        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.assert_(menor_valor_esperado, self.leilao.menor_lance)
        self.assert_(maior_valor_esperado, self.leilao.maior_lance)

    def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionads_em_ordem_decrescente(
            self):
        yuri = Usuario('Yuri')
        lance_do_yuri = Lance(yuri, 100.0)

        self.leilao.propoe(lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)

        maior_valor_esperado = 150.0
        menor_valor_esperado = 100.0

        self.assert_(menor_valor_esperado, self.leilao.menor_lance)
        self.assert_(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):
        gui = Usuario('Gui')
        lance = Lance(gui, 150)

        self.leilao.propoe(lance)

        self.assertEqual(150.0, self.leilao.menor_lance)
        self.assertEqual(150.0, self.leilao.maior_lance)

    def test_deve_retornar_O_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_tres_lances(
            self):

        vini = Usuario('Vini')

        lance_do_vini = Lance(vini, 200.0)

        yuri = Usuario('Yuri')
        lance_do_yuri = Lance(yuri, 100.0)

        self.leilao.propoe(lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_vini)

        maior_valor_esperado = 150.0
        menor_valor_esperado = 200.0

        self.assert_(menor_valor_esperado, self.leilao.menor_lance)
        self.assert_(maior_valor_esperado, self.leilao.maior_lance)
Beispiel #3
0
class TestLeilao(TestCase):
    # CRIAÇÃO DE CENÁRIO DE TESTES, QUANDO ALGO É REPETIDO EM TODOS OS PONTOS DE TESTE.
    def setUp(self):
        self.paulo = Usuario('paulo', 500.0)
        self.lance_do_paulo = Lance(self.paulo, 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):
        cris = Usuario('cris', 500.0)
        lance_do_cris = Lance(cris, 100.0)

        self.leilao.propoe(lance_do_cris)
        self.leilao.propoe(self.lance_do_paulo)

        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_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):
            cris = Usuario('cris', 500.0)
            lance_do_cris = Lance(cris, 100.0)

            self.leilao.propoe(self.lance_do_paulo)
            self.leilao.propoe(lance_do_cris)

    def test_deve_retornar_o_mesmo_valor_para_o_mairo_e_menor_lance_quando_leilao_tiver_um_lance(
            self):
        self.leilao.propoe(self.lance_do_paulo)

        self.assertEqual(150.0, self.leilao.menor_lance)
        self.assertEqual(150.0, self.leilao.maior_lance)

    def test_deve_retornar_o_mesmo_valor_para_o_mairo_e_menor_lance_quando_leilao_tiver_tres_lances(
            self):
        cris = Usuario('cris', 500.0)
        marcos = Usuario('marcos', 500.0)

        lance_do_cris = Lance(cris, 100.0)
        lance_do_marcos = Lance(marcos, 200.0)

        self.leilao.propoe(lance_do_cris)
        self.leilao.propoe(self.lance_do_paulo)
        self.leilao.propoe(lance_do_marcos)

        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_lances(
            self):
        self.leilao.propoe(self.lance_do_paulo)

        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(1, quantidade_de_lances_recebido)

    def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente(
            self):
        joao = Usuario('joan', 500.0)

        lance_do_joao = Lance(joao, 200.0)

        self.leilao.propoe(self.lance_do_paulo)
        self.leilao.propoe(lance_do_joao)

        quantidade_de_lances_recebidos = len(self.leilao.lances)
        self.assertEqual(2, quantidade_de_lances_recebidos)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_do_paulo200 = Lance(self.paulo, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_paulo)
            self.leilao.propoe(lance_do_paulo200)
            quantidade_de_lances_recebidos = len(self.leilao.lances)
            self.assertEqual(1, quantidade_de_lances_recebidos)
class TestLeilao(TestCase):

    def setUp(self):
        self.esio = Usuario("Esio",500.0)
        self.gustavo = Usuario("Gustavo", 500.0)

        self.lance_do_esio = Lance(self.esio, 100.0)
        self.lance_do_gustavo = Lance(self.gustavo, 150.0)

        self.leilao = Leilao("Carro")

    # test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_de_um_lance
    def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente(self):
        self.leilao.propoe(self.lance_do_esio)
        self.leilao.propoe(self.lance_do_gustavo)

        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_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):
        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gustavo)
            self.leilao.propoe(self.lance_do_esio)

    def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_o_leilao_tiver_um_lance(self):
        self.leilao.propoe(self.lance_do_gustavo)

        self.assertEqual(150.0, self.leilao.menor_lance)
        self.assertEqual(150.0, self.leilao.maior_lance)

    def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_o_leilao_tiver_tres_lance(self):
        vini = Usuario('Vini',500.0)

        lance_do_vini = Lance(vini, 200.0)

        self.leilao.propoe(self.lance_do_esio)
        self.leilao.propoe(self.lance_do_gustavo)
        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)

    # se o leilao não tiver lances, deve permitir propor um lance
    def test_deve_permitir_propor_um_lance_caso_leilao_nao_tenha_lances(self):
        self.leilao.propoe(self.lance_do_esio)

        quantidade_lances_recebido = len(self.leilao.lances)

        self.assertEqual(1, quantidade_lances_recebido)

    # se o ultimo usuario for diferente, deve permitir propor o lance
    def test_deve_permitir_propor_um_lance_caso_ultimo_usuario_seja_diferente(self):
        vini = Usuario('Vini',500.0)

        lance_do_vini = Lance(vini, 200.0)

        self.leilao.propoe(self.lance_do_esio)
        self.leilao.propoe(lance_do_vini)

        quantidade_lances_recebido = len(self.leilao.lances)

        self.assertEqual(2, quantidade_lances_recebido)

    # se o ultimo usuario for o mesmo, não deve permitir propor o lance

    def test_nao_deve_permitir_propor_um_lance_caso_ultimo_usuario_seja_diferente(self):
        self.leilao.propoe(self.lance_do_esio)

        with self.assertRaises(LanceInvalido):
            lance_do_esio2 = Lance(self.esio, 200.0)
            self.leilao.propoe(lance_do_esio2)
class TestLeilao(TestCase):
    def setUp(self):
        self.brenda = Usuario('Brenda', 500.0)
        self.lance_brenda = Lance(self.brenda, 100.0)
        self.leilao = Leilao('Celular')

    def test_deve_retornar_o_maior_e_menor_lance_de_um_lance_quando_adicionados_em_ordem_crescente(
            self):
        joao = Usuario('João', 500.0)
        lance_joao = Lance(joao, 150.0)

        self.leilao.propoe(self.lance_brenda)
        self.leilao.propoe(lance_joao)

        self.assertEqual(100, self.leilao.menor_lance)
        self.assertEqual(150, self.leilao.maior_lance)

    def test_nao_deve_permitir_propor_lance_em_ordem_descrecente(self):
        with self.assertRaises(LanceInvalido):
            joao = Usuario('João', 500.0)
            lance_joao = Lance(joao, 150.0)

            self.leilao.propoe(lance_joao)
            self.leilao.propoe(self.lance_brenda)

    def test_deve_retornar_o_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_um_lance(
            self):
        self.leilao.propoe(self.lance_brenda)

        self.assertEqual(100, self.leilao.menor_lance)
        self.assertEqual(100, self.leilao.maior_lance)

    def test_deve_retornar_o_maior_e_menor_lance_quando_leilao_tiver_tres_lance(
            self):
        vini = Usuario('Vini', 500.0)
        joao = Usuario('João', 500.0)
        lance_joao = Lance(joao, 150.0)
        lance_vini = Lance(vini, 200.0)

        self.leilao.propoe(self.lance_brenda)
        self.leilao.propoe(lance_joao)
        self.leilao.propoe(lance_vini)

        self.assertEqual(100, self.leilao.menor_lance)
        self.assertEqual(200, self.leilao.maior_lance)

    def test_deve_permitir_propor_lance_caso_leilao_nao_tenha_lance(self):
        self.leilao.propoe(self.lance_brenda)
        quantidade_lances = len(self.leilao.lances)

        self.assertEqual(1, quantidade_lances)

    def test_deve_permitir_propor_lance_caso_ultimo_usuario_seja_diferente(
            self):
        joao = Usuario('João', 500.0)
        lance_joao = Lance(joao, 200.0)

        self.leilao.propoe(self.lance_brenda)
        self.leilao.propoe(lance_joao)

        quantidade_lances = len(self.leilao.lances)

        self.assertEqual(2, quantidade_lances)

    def test_nao_deve_permitir_propor_lance_caso_ultimo_usuario_seja_o_mesmo(
            self):
        lance_brenda500 = Lance(self.brenda, 500.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_brenda)
            self.leilao.propoe(lance_brenda500)
Beispiel #6
0
class TestLeilao(TestCase):
    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):
        self.setUp()
        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

        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_decrescente(self):
        self.setUp()
        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_maior_e_o_menor_valor_para_quando_o_leilao_tiver_tres_lances(
            self):
        self.setUp()

        yuri = Usuario('Yuri', 500.0)
        lance_do_yuri = Lance(yuri, 100.0)

        geo = Usuario('Geo', 500.0)

        lance_do_geo = Lance(geo, 200.0)

        self.leilao.propoe(lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_geo)

        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_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance(
            self):
        self.setUp()

        lance = Lance(self.gui, 150.0)

        leilao = Leilao('celular')
        leilao.propoe(lance)

        menor_valor_esperado = 150.0
        maior_valor_esperado = 150.0

        self.assertEqual(menor_valor_esperado, leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, 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 = (self.leilao.lances)

        self.assertEqual(1, len(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_recebidos = len(self.leilao.lances)

        self.assertEqual(2, quantidade_de_lances_recebidos)

    # 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)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui_200)
Beispiel #7
0
class TesteLeilao(TestCase):
    def setUp(self):
        self.gui = Usuario('Gui', 500.0)
        self.yuri = Usuario('Yuri', 500.0)
        self.lance_do_yuri = Lance(self.yuri, 100.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_adicioandos_em_ordem_crescente(self):
        self.leilao.propoe(self.lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)

        self.assertEqual(100.0, self.leilao.menor_lance)
        self.assertEqual(150.0, self.leilao.maior_lance)

    def test_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):
        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(self.lance_do_yuri)

    def test_deve_retornar_o_mesmo_valor_para_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_leilao_tiver_tres_lances(self):
        vini = Usuario('Vini', 500.0)
        lance_do_vini = Lance(vini, 200.0)

        self.leilao.propoe(self.lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_vini)

        self.assertEqual(100.0, self.leilao.menor_lance)
        self.assertEqual(200.0, self.leilao.maior_lance)

    def test_deve_permitir_propor_um_lance_caso_o_leilao_nao_tenha_lances(self):
        self.leilao.propoe(self.lance_do_gui)
        self.assertEqual(1, len(self.leilao))

    def test_deve_permitir_propor_lance_caso_o_ultimo_usuario_seja_diferente(self):
        self.leilao.propoe(self.lance_do_yuri)
        self.leilao.propoe(self.lance_do_gui)

        self.assertEqual(2, len(self.leilao))

    def test_nao_deve_permitir_propor_lance_caso_o_ultimo_usuario_seja_igual(self):
        segundo_lance = Lance(self.gui, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(segundo_lance)
class TestLeilao(TestCase):

    # test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_de_um_lance

    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

        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_decrescente(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)
        lance_do_yuri = Lance(yuri, 100.0)
        vini = Usuario('Vini', 500.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

        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_lances(
            self):
        self.leilao.propoe(self.lance_do_gui)

        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(1, quantidade_de_lances_recebido)

    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)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_do_gui200 = Lance(self.gui, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui200)
class Test_Leilao(TestCase):
    def setUp(self):
        self.usuario1 = Usuario('Usuario1')
        self.usuario2 = Usuario('Usuario2')
        self.usuario3 = Usuario('Usuario3')
        self.lance_do_usuario1 = Lance(self.usuario1, 100.0)
        self.lance_do_usuario2 = Lance(self.usuario2, 150.0)
        self.lance_do_usuario3 = Lance(self.usuario3, 200.0)
        self.leilao = Leilao('Celular')

    def test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_do_lance(
            self):
        self.leilao.propoe(self.lance_do_usuario1)
        self.leilao.propoe(self.lance_do_usuario2)

        self.assertEqual(100.0, self.leilao.menor_lance)
        self.assertEqual(150.0, self.leilao.maior_lance)

    def test_nao_deve_permitir_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_usuario2)
            self.leilao.propoe(self.lance_do_usuario1)
            self.assertEqual(100.0, self.leilao.menor_lance)
            self.assertEqual(150.0, self.leilao.maior_lance)

    def test_deve_retornar_o_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_tres_lance(
            self):
        self.leilao.propoe(self.lance_do_usuario1)
        self.leilao.propoe(self.lance_do_usuario2)
        self.leilao.propoe(self.lance_do_usuario3)
        self.assertEqual(100.0, self.leilao.menor_lance)
        self.assertEqual(200.0, self.leilao.maior_lance)

    def test_deve_retornar_o_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_um_lance(
            self):
        self.leilao.propoe(self.lance_do_usuario1)
        self.assertEqual(100.0, self.leilao.menor_lance)
        self.assertEqual(100.0, self.leilao.maior_lance)

    def test_deve_permitir_propor_lance_caso_o_leilao_nao_tenha_lance(self):
        self.leilao.propoe(self.lance_do_usuario1)
        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(1, quantidade_de_lances_recebido)

    def text_deve_permitir_propor_um_lance_caso_o_ultimo_usario_seja_diferente(
            self):
        self.leilao.propoe(self.lance_do_usuario1)
        self.leilao.propoe(self.lance_do_usuario2)

        quantidade_de_lances_recebida = len(self.leilao.lances)

        self.assertEqual(2, quantidade_de_lances_recebida)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_mesmo(self):
        """
        try:
            self.leilao.propoe(self.lance_do_usuario1)
            self.leilao.propoe(self.lance_do_usuario1)
            self.fail(msg='Não Lancou exeção')
        except ValueError:
            quantidade_de_lances_recebidos = len(self.leilao.lances)
            self.assertEqual(1, quantidade_de_lances_recebidos)
        """
        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_usuario1)
            self.leilao.propoe(self.lance_do_usuario1)
Beispiel #10
0
from src.leilao.dominio import Usuario, Lance, Leilao, Avaliador

# instanciando usuário
dudu = Usuario('Eduardo')
fer = Usuario('Fernando')
amor = Usuario('Aline')

# instanciando lance
lance_dudu = Lance(dudu, 100.0)
lance_fer = Lance(fer, 150.0)
lance_amor = Lance(amor, 200.0)

#instanciando leilão
leilao = Leilao('celular')

leilao.propoe(lance_dudu)
leilao.propoe(lance_fer)
leilao.propoe(lance_amor)

for lance in leilao.lances:
    print(f'O usuário {lance.usuario.nome} deu um lance de R${lance.valor}.')

print(
    f'O maior lance do leilão foi de {avaliador.maior_lance} e o menor lance foi de {avaliador.menor_lance}.'
)
class TestAvaliador(TestCase):
    def setUp(
        self
    ):  #com essa função nao será preciso chamar o metodo em cada metodo test
        self.gui = Usuario('Gui', 500.0)
        self.lance_do_gui = Lance(self.gui, 150)
        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)

        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_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):
            yuri = Usuario('Yuri', 500.0)
            lance_do_yuri = Lance(yuri, 100)

            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_o_leilao_tiver_um_lance(
            self):
        self.leilao.propoe(self.lance_do_gui)

        self.assertEqual(150, self.leilao.menor_lance)
        self.assertEqual(150, self.leilao.maior_lance)

    def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_apenas_3_lances(
            self):
        vini = Usuario('Vini', 500.0)
        lance_do_vini = Lance(vini, 200.00)

        yuri = Usuario('Yuri', 500.0)
        lance_do_yuri = Lance(yuri, 100)

        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)

    # se o leilao nao tiver lances deve permir propor o lance

    def test_deve_permitir_propor_lance_caso_o_leilao_nao_tenha_lances(self):
        self.leilao.propoe(self.lance_do_gui)
        self.assertEqual(1, len(self.leilao.lances))

    def test_deve_permirtir_propor_um_lance_se_o_ultimo_usuario_seja_diferente(
            self):
        yuri = Usuario('Yuri', 500.0)
        lance_do_yuri = Lance(yuri, 200.00)

        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_yuri)

        quantidades_de_lances_recebidos = len(self.leilao.lances)

        self.assertEqual(2, quantidades_de_lances_recebidos)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_do_gui_duzentos = Lance(self.gui, 200.00)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui_duzentos)
Beispiel #12
0
class TestLeilao(TestCase):
    def setUp(self):
        self.valor_carteira = 1000.0
        self.menor_valor_esperado = 100.0
        self.maior_valor_esperado = 150.0
        self.usuario_bruno = Usuario('bruno', self.valor_carteira)
        self.lance_do_bruno = Lance(self.usuario_bruno,
                                    self.menor_valor_esperado)
        self.lance_da_bruna = Lance(Usuario('bruna', self.valor_carteira),
                                    self.maior_valor_esperado)
        self.leilao = Leilao('Video Game')

    def test_quando_adiciona_dois_lances_em_ordem_crescente_deve_retornar_os_de_maior_e_menor_valor(
            self):

        self.leilao.propoe(self.lance_do_bruno)
        self.leilao.propoe(self.lance_da_bruna)

        self.assertEqual(self.menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(self.maior_valor_esperado, self.leilao.maior_lance)

    # alguns testes deixam de ser necessários conforme o sistema evolui e implementa novas regras de negócio
    # def test_quando_adiciona_dois_lances_em_ordem_decrescente_deve_retornar_os_de_maior_e_menor_valor(self):
    #     self.leilao.propoe(self.lance_da_bruna)
    #     self.leilao.propoe(self.lance_do_bruno)
    #     self.assertEqual(self.menor_valor_esperado, self.leilao.menor_lance)
    #     self.assertEqual(self.maior_valor_esperado, self.leilao.maior_lance)
    #
    # eles devem ser modificados e aproveitados para validar as novas regras
    def test_quando_propor_lances_em_ordem_decrescente_nao_deve_permitir(self):

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_da_bruna)
            self.leilao.propoe(self.lance_do_bruno)

    def test_quando_adiciona_apenas_um_lance_deve_retornar_o_mesmo_valor_para_o_lance_de_maior_e_menor_valor(
            self):

        self.leilao.propoe(self.lance_da_bruna)

        self.assertEqual(self.maior_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(self.maior_valor_esperado, self.leilao.maior_lance)

    def test_quando_adiciona_tres_lances_deve_retornar_os_de_maior_e_menor_valor(
            self):

        valor_maior_ainda = 200.0
        self.leilao.propoe(self.lance_do_bruno)
        self.leilao.propoe(self.lance_da_bruna)
        self.leilao.propoe(
            Lance(Usuario('breno', self.valor_carteira), valor_maior_ainda))

        self.assertEqual(self.menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(valor_maior_ainda, self.leilao.maior_lance)

    def test_quando_nao_ha_lances_deve_permitir_propor_um_lance(self):

        self.leilao.propoe(self.lance_do_bruno)

        self.assertEqual(1, self.leilao.quantidade_lances)

    def test_quando_ultimo_usuario_for_diferente_deve_permitir_propor_lance(
            self):

        self.leilao.propoe(self.lance_do_bruno)
        self.leilao.propoe(self.lance_da_bruna)

        self.assertEqual(2, self.leilao.quantidade_lances)

    def test_quando_ultimo_usuario_for_o_mesmo_nao_deve_permitir_propor_lance(
            self):

        # try:
        #     self.leilao.propoe(self.lance_do_bruno)
        #     self.leilao.propoe(self.lance_do_bruno)
        #     self.fail(msg='Não lançou exceção.')
        # except LanceInvalido:
        #     self.assertEqual(1, self.leilao.quantidade_lances)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_bruno)
            self.leilao.propoe(Lance(self.usuario_bruno, 500.0))
class TestLeilao(TestCase):
    def setUp(self):
        self.gui = Usuario('Gui')
        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_passados_de_forma_crescente(
            self):
        self.Alex = Usuario('Alex')
        self.lance_do_alex = Lance(self.Alex, 100.0)
        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(self.lance_do_alex)

        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_passados_de_forma_decrescente(
            self):
        self.Alex = Usuario('Alex')
        self.lance_do_alex = Lance(self.Alex, 100.0)

        self.leilao.propoe(self.lance_do_alex)
        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_maior_e_menor_quando_houver_apenas_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_de_um_lance_quando_passados_tres_lances(
            self):
        Alex = Usuario('Alex')
        lance_do_alex = Lance(Alex, 100.0)
        mateus = Usuario('Mateus')
        lance_do_mateus = Lance(mateus, 200.0)

        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_alex)
        self.leilao.propoe(lance_do_mateus)

        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_lance_quando_leilao_nao_tiver_lance(self):
        self.leilao.propoe(self.lance_do_gui)
        quantidade_de_lances = len(self.leilao.lances)

        self.assertEqual(1, quantidade_de_lances)

    def test_deve_permitir_propor_lance_caso_o_usuario_anterior_seja_diferente(
            self):
        yuri = Usuario('yuri')
        lance_do_yuri = Lance(yuri, 200.0)

        self.leilao.propoe(self.lance_do_gui)
        self.leilao.propoe(lance_do_yuri)

        quantidade_de_lances = len(self.leilao.lances)
        self.assertEqual(2, quantidade_de_lances)

    def test_nao_deve_permitir_lance_caso_usuario_seja_o_mesmo(self):
        lance_do_gui = Lance(self.gui, 200.0)

        with self.assertRaises(ValueError):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui)
Beispiel #14
0
class TestLeilao(TestCase):
    def setUp(self):
        self.leo = Usuario("Leo", 500.0)
        self.vini = Usuario("Vini", 1500.0)
        self.joice = Usuario("Joice", 100.0)

        self.lance_vini = Lance(self.vini, 1300.0)
        self.lance_leo = Lance(self.leo, 300.0)
        self.lance_joice = Lance(self.joice, 30.0)

        self.leilao = Leilao("Iphone XS")

    def test_decrescente(self):

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_leo)
            self.leilao.propoe(self.lance_vini)
            self.leilao.propoe(self.lance_joice)

    def test_crescente(self):

        self.leilao.propoe(self.lance_joice)
        self.leilao.propoe(self.lance_leo)
        self.leilao.propoe(self.lance_vini)

        menor_valor_esperado = 30.0
        maior_valor_esperado = 1300.0

        self.assertEqual(menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, self.leilao.maior_lance)

    def test_um_lance(self):

        self.leilao.propoe(self.lance_vini)

        menor_valor_esperado = 1300.0
        maior_valor_esperado = 1300.0

        self.assertEqual(menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, self.leilao.maior_lance)

    def test_insere_lance_lista_vazia(self):

        self.leilao.propoe(self.lance_vini)

        self.assertEqual(1, len(self.leilao.lances))

    def test_insere_lance_usuario_diferente(self):

        self.leilao.propoe(self.lance_leo)
        self.leilao.propoe(self.lance_vini)

        self.assertEqual(2, len(self.leilao.lances))

    def test_insere_lance_usuario_igual(self):

        with self.assertRaises(LanceInvalido):
            lance_vini1400 = Lance(self.vini, 1400.0)
            self.leilao.propoe(self.lance_vini)
            self.leilao.propoe(lance_vini1400)

    def test_lance_maior_anterior_positivo(self):

        self.leilao.propoe(self.lance_joice)
        self.leilao.propoe(self.lance_vini)

        self.assertEqual(2, len(self.leilao.lances))

    def test_lance_maior_anterior_negativo(self):

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_vini)
            self.leilao.propoe(self.lance_joice)
Beispiel #15
0
class TestLeilao(TestCase):
    def setUp(self):  # criação de um cenário único para os teste rodarem
        self.dudu = Usuario('Eduardo', 300.0)
        self.fer = Usuario('Fernando', 300.0)
        self.amor = Usuario('Aline', 300.0)

        self.lance_amor = Lance(self.amor, 100.0)
        self.lance_fer = Lance(self.fer, 150.0)
        self.lance_dudu = Lance(self.dudu, 200.0)
        self.leilao = Leilao('celular')

    def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente(
            self):
        self.leilao.propoe(self.lance_amor)
        self.leilao.propoe(self.lance_fer)
        self.leilao.propoe(self.lance_dudu)

        valor_esperado_maior = 200.0
        valor_esperado_menor = 100.0

        self.assertEqual(valor_esperado_menor, self.leilao.menor_lance)
        self.assertEqual(valor_esperado_maior, self.leilao.maior_lance)

    def test_deve_retornar_o_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_apenas_um_lance(
            self):
        self.leilao.propoe(self.lance_dudu)

        valor_esperado_maior = 200
        valor_esperado_menor = 200

        self.assertEqual(valor_esperado_menor, self.leilao.menor_lance)
        self.assertEqual(valor_esperado_maior, self.leilao.maior_lance)

    def test_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):
        with self.assertRaises(ValueError):
            self.leilao.propoe(self.lance_dudu)
            self.leilao.propoe(self.lance_fer)
            self.leilao.propoe(self.lance_amor)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_dudu_250 = Lance(self.dudu, 250.0)

        with self.assertRaises(ValueError):
            self.leilao.propoe(self.lance_dudu)
            self.leilao.propoe(lance_dudu_250)
class TestLeilao(TestCase):
    def setUp(
        self
    ):  #método padrão do unittest para criar algum cenário, ele é invocado antes de rodar os testes e ele é sempre executado novamente a cada teste, é feito de forma isolada
        #boa prática é deixar apenas todos os atributos que são usados em TODOS OS TESTES, pois, caso tenha 4 atributos e só use 1, pode deixar esta parte do código menos perfomática
        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

        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):
        vini = Usuario('Vini', 500.0)
        lance_do_vini = Lance(vini, 200.0)
        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)
        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)

    # 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_esperado = 1
        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(quantidade_de_lances_esperado,
                         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_esperado = 2
        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(quantidade_de_lances_esperado,
                         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_gui200 = Lance(self.gui, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui200)
Beispiel #17
0
class TestLeilao(TestCase):
    def setUp(self):
        self.gui = Usuario("Gui", 500.0)
        self.lance_gui = Lance(self.gui, 150.0)
        self.leilao = Leilao("Celular")

    def test_nao_deve_permitir_propor_lance_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):
            yuri = Usuario("Yuri", 500.0)
            lance_yuri = Lance(yuri, 100.0)

            self.leilao.propoe(self.lance_gui)
            self.leilao.propoe(lance_yuri)

    def test_deve_retornar_menor_valor_de_dois_lance_em_ordem_crescente(self):
        yuri = Usuario("Yuri", 500.0)

        lance_yuri = Lance(yuri, 100.0)

        self.leilao.propoe(lance_yuri)
        self.leilao.propoe(self.lance_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_maior_valor_menor_valor_quando_leilao_tiver_um_unico_lance(
            self):
        self.leilao.propoe(self.lance_gui)

        menor_valor_esperado = 150.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_maior_valor_menor_valor_quando_leilao_tiver_tres_lances(
            self):
        yuri = Usuario("Yuri", 500.0)
        lance_yuri = Lance(yuri, 100.0)

        vini = Usuario("Vini", 500.0)
        lance_vini = Lance(vini, 200.0)

        self.leilao.propoe(lance_yuri)
        self.leilao.propoe(self.lance_gui)
        self.leilao.propoe(lance_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_lance_caso_nao_exista_lance(self):
        self.leilao.propoe(self.lance_gui)

        qtd_lances_recebidos = len(self.leilao.lances)

        self.assertEqual(1, qtd_lances_recebidos)

    def test_deve_permitir_propor_lance_caso_ultimo_usuario_seja_diferente_usuario_ultimo_lance(
            self):
        yuri = Usuario("Yuri", 500.0)
        lance_yuri = Lance(yuri, 100.0)

        self.leilao.propoe(lance_yuri)
        self.leilao.propoe(self.lance_gui)

        qtd_lances_recebidos = len(self.leilao.lances)

        self.assertEqual(2, qtd_lances_recebidos)

    def test_nao_deve_permitir_propor_lances_caso_usuario_seja_igual_ao_usuario_ultimo_lance(
            self):
        lance_qui_200 = Lance(self.gui, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_gui)
            self.leilao.propoe(lance_qui_200)
Beispiel #18
0
class TestLeilao(TestCase):

    # cenarios que se repetem
    def setUp(self):  # metodo que cria cenários sem precisar invocá-lo em tds os testes
        self.sicrano = Usuario('Sicrano', 5000.0)
        self.lance_sicrano = Lance(self.sicrano, 1500.0)
        self.leilao = Leilao('Quadro')

    # padrões nomenclatura:
    # test_quando_adicionados_em_ordem_crescente_deve_retornar_maior_e_menor_valor_de_lance(self):
    def test_deve_retornar_maior_e_menor_valor_de_lance_quando_adicionados_em_ordem_crescente(self):
        fulano = Usuario('Fulano', 5000.0)
        lance_fulano = Lance(fulano, 1000.0)

        self.leilao.propoe(lance_fulano)
        self.leilao.propoe(self.lance_sicrano)

        menor_valor_esperado = 1000.0
        maior_valor_esperado = 1500.0

        self.assertEqual(menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, self.leilao.maior_lance)

    def test_nao_deve_permitir_proposicao_de_lance_em_ordem_decrescente(self):
        with self.assertRaises(LanceInvalido):
            fulano = Usuario('Fulano', 5000.0)
            lance_fulano = Lance(fulano, 1000.0)

            self.leilao.propoe(self.lance_sicrano)
            self.leilao.propoe(lance_fulano)

    def test_deve_retornar_mesmo_valor_para_maior_e_menor_lance_quando_leilao_tiver_lance(self):
        self.leilao.propoe(self.lance_sicrano)

        self.assertEqual(1500.0, self.leilao.menor_lance)
        self.assertEqual(1500.0, self.leilao.maior_lance)

    def test_deve_retornar_maior_e_menor_valor_quando_leilao_tiver_tres_lances(self):
        fulano = Usuario('Fulano', 5000.0)
        beltrano = Usuario('Beltrano', 5000.0)

        lance_fulano = Lance(fulano, 1000.0)
        lance_beltrano = Lance(beltrano, 2000.0)

        self.leilao.propoe(lance_fulano)
        self.leilao.propoe(self.lance_sicrano)
        self.leilao.propoe(lance_beltrano)

        menor_valor_esperado = 1000.0
        maior_valor_esperado = 2000.0

        self.assertEqual(menor_valor_esperado, self.leilao.menor_lance)
        self.assertEqual(maior_valor_esperado, self.leilao.maior_lance)

    # se o leilao nao tiver lances, deve permitir propor um lance
    def test_deve_permitir_proposicao_de_lance_caso_leilao_nao_tenha_lances(self):
        self.leilao.propoe(self.lance_sicrano)

        quantidade_lances_recebidos = len(self.leilao.lances)
        self.assertEqual(1, quantidade_lances_recebidos)

    # se o último usuário for diferente, deve permitir propor um lance
    def test_deve_permitir_proposicao_de_lance_caso_usuario_seja_diferente(self):
        fulano = Usuario('Fulano', 5000.0)
        lance_fulano = Lance(fulano, 2000.0)

        self.leilao.propoe(self.lance_sicrano)
        self.leilao.propoe(lance_fulano)

        quantidade_lances_recebidos = len(self.leilao.lances)
        self.assertEqual(2, quantidade_lances_recebidos)

    # se o último usuário for o mesmo, não deve permitir propor um lance
    def test_nao_deve_permitir_proposicao_de_lance_caso_usuario_consecutivo_seja_igual(self):
        lance_sicrano2000 = Lance(self.sicrano, 2000.0)

        with self.assertRaises(LanceInvalido):  # try/except Value Error
            self.leilao.propoe(lance_sicrano2000)
            self.leilao.propoe(self.lance_sicrano)
Beispiel #19
0
class TestLeilao(TestCase):

    # test_quando_adicionados_em_ordem_crescente_deve_retornar_o_maior_e_o_menor_valor_de_um_lance

    def setUp(self):
        self.user_01 = Usuario('usuario01', 500.0)
        self.lance_do_user_01 = Lance(self.user_01, 150.0)
        self.leilao = Leilao('Playstation5')

    def test_deve_retornar_o_maior_e_o_menor_valor_de_um_lance_quando_adicionados_em_ordem_crescente(
            self):
        user_02 = Usuario('usuario02', 500.0)
        lance_do_yuri = Lance(user_02, 100.0)

        self.leilao.propoe(lance_do_yuri)
        self.leilao.propoe(self.lance_do_user_01)

        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_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):
            user_01 = Usuario('usuario01', 500.0)
            lance_user_01 = Lance(user_01, 100.0)

            self.leilao.propoe(self.lance_do_user_01)
            self.leilao.propoe(lance_user_01)

    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_user_01)

        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):
        user_01 = Usuario('usuario01', 500.0)
        lance_user_01 = Lance(user_01, 100.0)
        user_02 = Usuario('usuario02', 500.0)

        lance_user_02 = Lance(user_02, 200.0)

        self.leilao.propoe(lance_user_01)
        self.leilao.propoe(self.lance_do_user_01)
        self.leilao.propoe(lance_user_02)

        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_lances(
            self):
        self.leilao.propoe(self.lance_do_user_01)

        quantidade_de_lances_recebido = len(self.leilao.lances)
        self.assertEqual(1, quantidade_de_lances_recebido)

    def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente(
            self):
        user_02 = Usuario('usuario02', 500.0)
        lance_user_02 = Lance(user_02, 200.0)

        self.leilao.propoe(self.lance_do_user_01)
        self.leilao.propoe(lance_user_02)

        quantidade_de_lances_recebido = len(self.leilao.lances)

        self.assertEqual(2, quantidade_de_lances_recebido)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_user_02 = Lance(self.user_01, 200.0)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_user_01)
            self.leilao.propoe(lance_user_02)
Beispiel #20
0
class TestLeilao(TestCase):

    #esse metodo é sempre invocado antes dos métodos(isola = garante que um teste não influencia o outro)
    def setUp(self):
        self.gui = Usuario('Gui', 500.0)
        self.lance_do_gui = Lance(self.gui, 150.0)
        self.leilao = Leilao('Celular')


    #deixar de forma clara
    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
            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_em_ordem_decrescente(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_o_leilao_estiver_um_lance(self):
        self.leilao.propoe(self.lance_do_gui)

        self.assertEqual(150.0, self.leilao.maior_lance)
        self.assertEqual(150.0, self.leilao.menor_lance)

    def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_valores(self):
        yuri = Usuario('Yuri', 500.0)
        vini = Usuario('Vini', 500.0)

        lance_do_vini = Lance(vini, 200.0)
        lance_do_yuri = Lance(yuri, 100.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_lances(self):
        self.leilao.propoe(self.lance_do_gui)
        quantidade_de_lances_recebidos = len(self.leilao.lances)
        self.assertEqual(1, quantidade_de_lances_recebidos)


    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_recebidos = len(self.leilao.lances)
        self.assertEqual(2,quantidade_de_lances_recebidos)

    def test_nao_deve_pertmitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_do_gui200 = Lance(self.gui, 200.0)

        #try:
        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_do_gui)
            self.leilao.propoe(lance_do_gui200)
class TestLeilao(TestCase):
    def setUp(self):

        self.luana = Usuario('Luana', 500)
        self.lance_da_luana = Lance(self.luana, 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):

        rafael = Usuario('Rafael', 500)
        lance_do_rafael = Lance(rafael, 100.0)

        self.leilao.propoe(lance_do_rafael)
        self.leilao.propoe(self.lance_da_luana)

        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_nao_deve_permitir_propor_um_lance_em_ordem_decrescente(self):

        with self.assertRaises(LanceInvalido):

            rafael = Usuario('Rafael', 500)
            lance_do_rafael = Lance(rafael, 100.0)

            self.leilao.propoe(self.lance_da_luana)
            self.leilao.propoe(lance_do_rafael)

    def test_deve_retornar_o_mesmo_valor_para_omenor_lance_quando_leilao_tiver_um_lance(
            self):

        self.leilao.propoe(self.lance_da_luana)

        self.assertEqual(150, self.leilao.menor_lance)
        self.assertEqual(150, self.leilao.maior_lance)

    def test_deve_retornar_o_maior_e_o_menor_valor_quando_o_leilao_tiver_tres_lances(
            self):

        rafael = Usuario('Rafael', 500)
        lance_do_rafael = Lance(rafael, 100.0)

        vini = Usuario('Vini', 500)
        lance_do_vini = Lance(vini, 200)

        self.leilao.propoe(lance_do_rafael)
        self.leilao.propoe(self.lance_da_luana)
        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)

# 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_da_luana)

        quantidade_lance_recebida = len(self.leilao.lances)

        self.assertEqual(1, quantidade_lance_recebida)

    def test_deve_permitir_propor_um_lance_caso_o_ultimo_usuario_seja_diferente(
            self):
        pedro = Usuario('Pedro', 500)
        lance_do_pedro = Lance(pedro, 200)

        self.leilao.propoe(self.lance_da_luana)
        self.leilao.propoe(lance_do_pedro)

        quantidade_de_lance_recebido = len(self.leilao.lances)

        self.assertEqual(2, quantidade_de_lance_recebido)

    def test_nao_deve_permitir_propor_lance_caso_o_usuario_seja_o_mesmo(self):
        lance_da_luana200 = Lance(self.luana, 200)

        with self.assertRaises(LanceInvalido):
            self.leilao.propoe(self.lance_da_luana)
            self.leilao.propoe(lance_da_luana200)