def teste_status(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] passaros = [PassaroAmarelo(1, 1) for i in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual('Jogo em andamento.', fase.status(0)) self.assertEqual('Jogo em andamento.', fase.status(2.9)) self.assertEqual('Jogo em andamento.', fase.status(3)) for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual('Jogo em andamento.', fase.status(0)) self.assertEqual('Jogo em andamento.', fase.status(2.9)) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Sem porcos ativos o jogo deveria terminar com vitória') fase.adicionar_obstaculo(Obstaculo()) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Obstáculo não interfere para definir vitória') porco = Porco() fase.adicionar_porco(porco) self.assertEqual('Jogo em encerrado. Você perdeu!', fase.status(3), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual('Jogo em andamento.', fase.status(3), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar') porco.colidir(porco, 3) self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_acabou_com_porcos_e_passaros(self): fase = Fase() porcos = [PorcoFake(1, 1) for _ in range(2)] # criando 2 porcos passaros = [PassaroFake(1, 1) for _ in range(2)] # criando 2 pássaros fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for ator in porcos + passaros: ator.status = DESTRUIDO self.assertEqual(VITORIA, fase.status()) fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere no fim do jogo') fase.adicionar_porco(PorcoFake()) self.assertEqual( DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo ' 'deveria acabar') fase.adicionar_passaro(PassaroFake()) self.assertEqual( EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo ' 'não deveria acabar')
def teste_status(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] passaros = [PassaroAmarelo(1, 1) for i in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual(VITORIA, fase.status(), 'Sem porcos ativos o jogo deveria terminar com vitória') fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere para definir vitória') porco = Porco() fase.adicionar_porco(porco) self.assertEqual(DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual(EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar') porco.colidir(porco, 3) self.assertEqual(VITORIA, fase.status(), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_status(self): fase = Fase() porcos = [PorcoFake(1, 1) for _ in range(2)] passaros = [PassaroFake(1, 1) for _ in range(2)] fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) for ator in porcos + passaros: ator.status = DESTRUIDO self.assertEqual( VITORIA, fase.status(), 'Sem porcos ativos o jogo deveria terminar com ' 'vitória') fase.adicionar_obstaculo(ObstaculoFake()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere para definir vitória') porco = PorcoFake() fase.adicionar_porco(porco) self.assertEqual( DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo ' 'deveria acabar em derrota') fase.adicionar_passaro(PassaroFake()) self.assertEqual( EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo ' 'não deveria acabar') porco.status = DESTRUIDO self.assertEqual(VITORIA, fase.status(), 'Sem porco ativo, o jogo deveria acabar com vitória')
def teste_acabou_com_porcos_e_passaros(self): fase = Fase() porcos = [Porco(1, 1) for i in range(2)] # criando 2 porcos passaros = [PassaroAmarelo(1, 1) for i in range(2)] # criando 2 pássaros fase.adicionar_porco(*porcos) fase.adicionar_passaro(*passaros) self.assertEqual(EM_ANDAMENTO, fase.status()) # colidindo cada passaro com um porco no tempo 3 for passaro, porco in zip(passaros, porcos): passaro.colidir(porco, 3) self.assertEqual(VITORIA, fase.status()) fase.adicionar_obstaculo(Obstaculo()) self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere no fim do jogo') fase.adicionar_porco(Porco()) self.assertEqual(DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar') fase.adicionar_passaro(PassaroAmarelo()) self.assertEqual(EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
def teste_acabou_sem_porcos(self): fase = Fase() self.assertEqual(VITORIA, fase.status())