async def accept_connection(self, user_id: int) -> UserConnection:
        """
        Accept the connection request from a requesting user.
        See: `Accept Connection <https://developers.symphony.com/restapi/reference#accepted-connection>`_

        :param user_id: The id of the user who requested to connect with the caller.

        :return: Connection status with the requesting user.

        """
        user_connection_request = UserConnectionRequest(user_id=user_id)
        params = {
            'connection_request': user_connection_request,
            'session_token': await self._auth_session.session_token
        }
        return await self._connection_api.v1_connection_accept_post(**params)
    async def create_connection(self, user_id: int) -> UserConnection:
        """
        Sends a connection request to another user.
        See: `Create Connection <https://developers.symphony.com/restapi/reference#create-connection>`_

        :param user_id: The id of the user with whom the caller want to connect.

        :return: Connection status with the specified user.

        """
        user_connection_request = UserConnectionRequest(user_id=user_id)
        params = {
            'connection_request': user_connection_request,
            'session_token': await self._auth_session.session_token
        }
        return await self._connection_api.v1_connection_create_post(**params)
async def test_reject_connection(connection_api, connection_service):
    connection_api.v1_connection_reject_post = AsyncMock()
    connection_api.v1_connection_reject_post.return_value = deserialize_object(UserConnection,
                                                                               "{"
                                                                               "   \"userId\": 7215545059385,"
                                                                               "   \"status\": \"REJECTED\","
                                                                               "   \"firstRequestedAt\": 1471044955409,"
                                                                               "   \"updatedAt\": 1471045390420,"
                                                                               "   \"requestCounter\": 1"
                                                                               "}")

    user_connection = await connection_service.reject_connection(7215545059385)

    connection_api.v1_connection_reject_post.assert_called_with(
        connection_request=UserConnectionRequest(user_id=7215545059385),
        session_token="session_token"
    )

    assert user_connection.user_id == 7215545059385
    assert user_connection.status == ConnectionStatus.REJECTED.value
async def test_create_connection(connection_api, connection_service):
    connection_api.v1_connection_create_post = AsyncMock()
    connection_api.v1_connection_create_post.return_value = deserialize_object(UserConnection,
                                                                               "{"
                                                                               "  \"userId\": 7078106126503,"
                                                                               "  \"status\": \"PENDING_OUTGOING\","
                                                                               "  \"firstRequestedAt\": 1471018076255,"
                                                                               "  \"updatedAt\": 1471018076255,"
                                                                               "  \"requestCounter\": 1"
                                                                               "}")

    user_connection = await connection_service.create_connection(7078106126503)

    connection_api.v1_connection_create_post.assert_called_with(
        connection_request=UserConnectionRequest(user_id=7078106126503),
        session_token="session_token"
    )

    assert user_connection.user_id == 7078106126503
    assert user_connection.request_counter == 1
    assert user_connection.status == ConnectionStatus.PENDING_OUTGOING.value
async def test_accept_connection(connection_api, connection_service):
    connection_api.v1_connection_accept_post = AsyncMock()
    connection_api.v1_connection_accept_post.return_value = deserialize_object(UserConnection,
                                                                               "{"
                                                                               "   \"userId\": 7078106169577,"
                                                                               "   \"status\": \"ACCEPTED\","
                                                                               "   \"firstRequestedAt\": 1471046357339,"
                                                                               "   \"updatedAt\": 1471046517684,"
                                                                               "   \"requestCounter\": 1"
                                                                               "}")

    user_connection = await connection_service.accept_connection(7078106169577)

    connection_api.v1_connection_accept_post.assert_called_with(
        connection_request=UserConnectionRequest(user_id=7078106169577),
        session_token="session_token"
    )

    assert user_connection.user_id == 7078106169577
    assert user_connection.first_requested_at == 1471046357339
    assert user_connection.status == ConnectionStatus.ACCEPTED.value