def METHOD_NAME(
    mocker,
    reporter,
    input_report_what,  # symbols the collection to report
    input_report_name,  # symbols the name of the collection items to report
    input_report_type,  # valid values: all, csv, mediawiki, trac, doku
    input_report_fields,  # valid values: all or a comma delimited str where spaces get removed
    expected_print_all_fields_count,
    expected_print_x_fields_count,
    expected_print_sorted_count,
    expected_list_names2_count,
):
    # Arrange
    input_report_noheaders = True
    mock_reporting_print_all_fields = mocker.patch.object(
        reporter, "reporting_print_all_fields", return_value=None
    )
    mock_reporting_print_x_fields = mocker.patch.object(
        reporter, "reporting_print_x_fields", return_value=None
    )
    mock_reporting_print_sorted = mocker.patch.object(
        reporter, "reporting_print_sorted", return_value=None
    )
    mock_reporting_list_names2 = mocker.patch.object(
        reporter, "reporting_list_names2", return_value=None
    )
    # Act
    reporter.run(
        input_report_what,
        input_report_name,
        input_report_type,
        input_report_fields,
        input_report_noheaders,
    )
    # Assert
    # TODO: Tighter checking
    assert mock_reporting_print_all_fields.call_count == expected_print_all_fields_count
    assert mock_reporting_print_x_fields.call_count == expected_print_x_fields_count
    assert mock_reporting_print_sorted.call_count == expected_print_sorted_count
    assert mock_reporting_list_names2.call_count == expected_list_names2_count