def test_should_only_choose_play_from_playbook(self): # Arrange controller = CpuFootballTeamController() state = FootballSimulationGameState() \ .team1(FootballTeam('teama')) \ .team2(FootballTeam('teamb')) \ .possession_index(0) \ .quarter(1) \ .get_view_only_state() playbook = FootballPlaybook() \ .add_kickoff_kicking_play(KickOffKickingPlay().name('name1')) # Act play = controller.choose_play(KickOffKickingPlay, state, playbook) # Assert self.assertEqual('name1', play.get_name())
def test_choose_play_should_handle_kickoff_test(self): for play_klass in (KickOffReceivingPlay, KickOffKickingPlay): # Arrange controller = CpuFootballTeamController() playbook = default_playbook state = FootballSimulationGameState() \ .team1(FootballTeam('teama')) \ .team2(FootballTeam('teamb')) \ .possession_index(0) \ .quarter(1) \ .get_view_only_state() # Act play = controller.choose_play(KickOffReceivingPlay, state, playbook) # Assert self.assertIsInstance(play, KickOffReceivingPlay)
def test_choose_play_should_handle_normal(self): for play_klass in (OffensePlay, DefensePlay): # Arrange controller = CpuFootballTeamController() playbook = default_playbook state = FootballSimulationGameState() \ .team1(FootballTeam('teama')) \ .team2(FootballTeam('teamb')) \ .possession_index(0) \ .quarter(1) \ .time(20) \ .get_view_only_state() # Act play = controller.choose_play(play_klass, state, playbook) # Assert self.assertIsInstance(play, play_klass)