def METHOD_NAME(
    source_bucket, destination_bucket, test_file, test_file_reversed, monitor
):
    _ = [
        # match
        source_bucket.upload_local_file(test_file, 'folder/test-1.txt'),
        destination_bucket.upload_local_file(test_file, 'folder/test-1.txt'),
        # missing on destination
        source_bucket.upload_local_file(test_file, 'folder/test-2.txt'),
        # missing on source
        destination_bucket.upload_local_file(test_file, 'folder/test-3.txt'),
        # metadata differs
        source_bucket.upload_local_file(
            test_file, 'folder/test-4.txt', file_info={
                'haha': 'hoho',
            }
        ),
        destination_bucket.upload_local_file(
            test_file, 'folder/test-4.txt', file_info={
                'hehe': 'hihi',
            }
        ),
        # hash differs
        source_bucket.upload_local_file(test_file, 'folder/test-5.txt'),
        destination_bucket.upload_local_file(test_file_reversed, 'folder/test-5.txt'),
    ]
    report = monitor.scan(scan_destination=True)
    # match
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'metadata_differs': False,
            'hash_differs': False,
        }
    )] == 1
    # missing on destination
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'destination_replication_status': None,
        }
    )] == 1
    # missing on source
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_replication_status': None,
            'source_has_hide_marker': None,
            'source_encryption_mode': None,
            'source_has_large_metadata': None,
            'source_has_file_retention': None,
            'source_has_legal_hold': None,
        }
    )] == 1
    # metadata differs
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'metadata_differs': True,
            'hash_differs': False,
        }
    )] == 1
    # hash differs
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'metadata_differs': False,
            'hash_differs': True,
        }
    )] == 1