@@ -70,4 +70,34 @@ def teste_acabou_com_porcos_e_passaros(self):
7070 fase .adicionar_porco (PassaroAmarelo ())
7171 self .assertTrue (fase .acabou (3 ), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar' )
7272
73+ def teste_status (self ):
74+ fase = Fase ()
75+ porcos = [Porco (1 , 1 ) for i in range (2 )]
76+ passaros = [PassaroAmarelo (1 , 1 ) for i in range (2 )]
77+ fase .adicionar_porco (* porcos )
78+ fase .adicionar_passaro (* passaros )
79+ self .assertEqual ('Jogo em andamento.' , fase .status (0 ))
80+ self .assertEqual ('Jogo em andamento.' , fase .status (2.9 ))
81+ self .assertEqual ('Jogo em andamento.' , fase .status (3 ))
82+
83+ for passaro , porco in zip (passaros , porcos ):
84+ passaro .colidir (porco , 3 )
85+
86+ self .assertEqual ('Jogo em andamento.' , fase .status (0 ))
87+ self .assertEqual ('Jogo em andamento.' , fase .status (2.9 ))
88+ self .assertEqual ('Jogo em encerrado. Você ganhou!' , fase .status (3 ),
89+ 'Sem porcos ativos o jogo deveria terminar com vitória' )
90+
91+ fase .adicionar_obstaculo (Obstaculo ())
92+ self .assertEqual ('Jogo em encerrado. Você ganhou!' , fase .status (3 ),
93+ 'Obstáculo não interfere para definir vitória' )
94+
95+ fase .adicionar_porco (Porco ())
96+ self .assertEqual ('Jogo em encerrado. Você perdeu!' , fase .status (3 ),
97+ 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota' )
98+
99+ fase .adicionar_porco (PassaroAmarelo ())
100+ self .assertEqual ('Jogo em andamento.' , fase .acabou (3 ),
101+ 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar' )
102+
73103
0 commit comments