def METHOD_NAME(mocker, config, profiles_response, attribution_report_response, stream_name, report_type):
    profiles = json.loads(profiles_response)
    # use only single profile
    profiles_response = json.dumps([profiles[0]])
    setup_responses(profiles_response=profiles_response)
    source = SourceAmazonAds()
    streams = source.streams(config)
    attribution_report_stream = get_stream_by_name(streams, stream_name)
    attribution_data = json.loads(attribution_report_response(report_type))
    def _callback(request: requests.PreparedRequest):
        attribution_data["cursorId"] = None
        request_data = json.loads(request.body)
        if request_data["count"] > 0:
            mocker.patch("source_amazon_ads.streams.attribution_report.AttributionReport.page_size", 0)
            attribution_data["cursorId"] = "next_page_token"
        return 200, {}, json.dumps(attribution_data)
    responses.add_callback(
        responses.POST,
        "https://advertising-api.amazon.com/attribution/report",
        content_type="application/json",
        callback=_callback,
    )
    attribution_records = list(read_full_refresh(attribution_report_stream))
    # request should be called 2 times for a single profile
    assert len(attribution_records) == 2 * len(attribution_data.get("reports"))