예제 #1
0
    def testSendShouldCallSendRequestAndReturnResponseDict(self):
        BASE_REQUEST_ID = 49
        CLIENT_VERSION = 10000
        USER_ID = 100000
        AUTH_KEY = 'AUTH_KEY'

        # setup
        game_server_connection = Mock()
        game_server_connection.sendRequest = Mock(return_value=calcCRC('{}') +
                                                  "${}")
        factory = message_factory.Factory(
            Session(USER_ID, AUTH_KEY, CLIENT_VERSION), BASE_REQUEST_ID)
        sender = RequestSender(factory, game_server_connection)

        # exercise
        sender.send({'type': 'TIME', 'id': BASE_REQUEST_ID})

        # verify
        game_server_connection.sendRequest.assert_called_once_with({
            'data':
            '{"auth":"ce50b18d6504622d8e04615316fd2151",'
            '"type":"TIME",'
            '"clientVersion":' + str(CLIENT_VERSION) + ','
            '"user":"******",'
            '"id":' + str(BASE_REQUEST_ID) + '}',
            'crc':
            'c4acfa714d16e562240d42dfbfcc858e'
        })
예제 #2
0
    def testSendShouldCallSendRequestAndReturnResponseDict(self):
        BASE_REQUEST_ID = 49
        CLIENT_VERSION = 10000
        USER_ID = 100000
        AUTH_KEY = 'AUTH_KEY'

        # setup
        game_server_connection = Mock()
        game_server_connection.sendRequest = Mock(return_value=calcCRC('{}')
                                                  + "${}")
        factory = message_factory.Factory(Session(USER_ID, AUTH_KEY,
                                                  CLIENT_VERSION),
                                          BASE_REQUEST_ID)
        sender = RequestSender(factory, game_server_connection)

        # exercise
        sender.send({'type': 'TIME', 'id': BASE_REQUEST_ID})

        # verify
        game_server_connection.sendRequest.assert_called_once_with(
            {'data':
             '{"auth":"ce50b18d6504622d8e04615316fd2151",'
             '"type":"TIME",'
             '"clientVersion":' + str(CLIENT_VERSION) + ','
             '"user":"******",'
             '"id":' + str(BASE_REQUEST_ID) + '}',
             'crc': 'c4acfa714d16e562240d42dfbfcc858e'}
            )
예제 #3
0
 def testResponseValidShouldNotRaiseError(self):
     # setup
     try:
         response = "{}"
         # exercise
         message_factory.Response(message_factory.calcCRC(response) + "$" +
                                  response)
     except ValueError:
         # verify
         self.fail("Exception should not have been raised")
예제 #4
0
    def testCrc(self):
        # set up
        message = 'some_string'

        # exercise
        actual_crc = message_factory.calcCRC(message)

        # verify
        expected_crc = "de2e201681e9fb3e8f683cdbb9c8242a"
        self.assertEqual(expected_crc, actual_crc)
예제 #5
0
    def testCrc(self):
        # set up
        message = "some_string"

        # exercise
        actual_crc = message_factory.calcCRC(message)

        # verify
        expected_crc = "de2e201681e9fb3e8f683cdbb9c8242a"
        self.assertEqual(expected_crc, actual_crc)
예제 #6
0
    def testResponseShouldReturnParsedDict(self):
        # setup
        response = '{"cmd":"EVT","id":"1","events":[]}'

        # exercise
        actual_response = message_factory.Response(
                message_factory.calcCRC(response) + "$" +
                response).getDict()

        # verify
        expected_response = {"cmd": "EVT", "id": "1", "events": []}
        self.assertEqual(expected_response, actual_response)
예제 #7
0
    def test_request_send_should_handle_redirect_cmd(self):
        # setup
        connection = Mock()
        request = Request("")
        response = '{"cmd":"REDIRECT",' '"redirect":"http://95.163.80.23/zombievk"}'
        connection.sendRequest = Mock(return_value=calcCRC(response) + "$" + response)
        connection.setUrl = Mock()

        # exercise
        request.send(connection)

        # verify
        self.assertEqual(2, connection.sendRequest.call_count)
예제 #8
0
    def test_request_send_should_handle_redirect_cmd(self):
        # setup
        connection = Mock()
        request = Request('')
        response = ('{"cmd":"REDIRECT",'
                    '"redirect":"http://95.163.80.23/zombievk"}')
        connection.sendRequest = Mock(return_value=calcCRC(response) + '$' +
                                      response)
        connection.setUrl = Mock()

        # exercise
        request.send(connection)

        # verify
        self.assertEqual(2, connection.sendRequest.call_count)
예제 #9
0
    def testRequestSendShouldHandleRedirect(self):
        # setup
        connection = Mock()
        request = Request("")
        server_url = "http://95.163.80.23/zombievk"
        response = '{"redirect":"' + server_url + '"}'
        connection.sendRequest = Mock(return_value=calcCRC(response) + "$" + response)
        connection.setUrl = Mock()

        # exercise
        request.send(connection)

        # verify
        connection.setUrl.assert_called_with(server_url + "/go")
        self.assertEqual(1, connection.sendRequest.call_count)
예제 #10
0
    def testRequestSendShouldHandleRedirect(self):
        # setup
        connection = Mock()
        request = Request('')
        server_url = 'http://95.163.80.23/zombievk'
        response = '{"redirect":"' + server_url + '"}'
        connection.sendRequest = Mock(return_value=calcCRC(response) + '$' +
                                      response)
        connection.setUrl = Mock()

        # exercise
        request.send(connection)

        # verify
        connection.setUrl.assert_called_with(server_url + '/go')
        self.assertEqual(1, connection.sendRequest.call_count)