async def METHOD_NAME(self):
    """test notify_keylist_updated."""
    handler = KeylistUpdateResponseHandler()
    async def _result_generator():
        yield ConnRecord(connection_id="conn_id_1")
        yield ConnRecord(connection_id="conn_id_2")
    async def _retrieve_by_invitation_key(
        generator: AsyncGenerator, *args, **kwargs
    ):
        return await generator.__anext__()
    with async_mock.patch.object(
        self.route_manager,
        "connection_from_recipient_key",
        partial(_retrieve_by_invitation_key, _result_generator()),
    ):
        response = KeylistUpdateResponse(
            updated=[
                KeylistUpdated(
                    recipient_key=TEST_ROUTE_VERKEY,
                    action=KeylistUpdateRule.RULE_ADD,
                    result=KeylistUpdated.RESULT_SUCCESS,
                ),
                KeylistUpdated(
                    recipient_key=TEST_VERKEY,
                    action=KeylistUpdateRule.RULE_REMOVE,
                    result=KeylistUpdated.RESULT_SUCCESS,
                ),
            ],
        )
        response.assign_thread_id(TEST_THREAD_ID)
        await handler.notify_keylist_updated(
            self.context.profile, TEST_CONN_ID, response
        )
    assert self.mock_event_bus.events
    assert (
        self.mock_event_bus.events[0][1].topic
        == MediationManager.KEYLIST_UPDATED_EVENT
    )
    assert self.mock_event_bus.events[0][1].payload == {
        "connection_id": TEST_CONN_ID,
        "thread_id": TEST_THREAD_ID,
        "updated": [result.serialize() for result in response.updated],
        "mediated_connections": {
            TEST_ROUTE_VERKEY: "conn_id_1",
            TEST_VERKEY: "conn_id_2",
        },
    }