class Test(unittest.TestCase):
    
    def setUp(self):
        self.game = MockGame()
        self.gamethread = MockGameThread(self.game)
    
    def test_use_eventhandler_and_start_thread_first_time_processing_then_draw_screen(self):
        eventhandler = MockEventHandler(self.game)
        display = MockDisplay(self.game)
        state = GameState(eventhandler, display, self.gamethread)
        
        state.process(MockEvent(), {})
        state.display(None)
        
        self.assertTrue(self.gamethread.started)
        self.assertTrue(eventhandler.processed)
        self.assertTrue(display.displayed)
        
    def test_kill_state_kills_thread(self):
        state = GameState(self.game, None, self.gamethread)
        
        self.game.set_game_over(True)
        
        state.kill()
        
        self.assertTrue(self.gamethread.gotshutdown)
        self.assertTrue(self.gamethread.gotjoined)
 def setUp(self):
     self.game = MockGame()
     self.gamethread = MockGameThread(self.game)