def METHOD_NAME(source_bucket, test_file, monitor):
    # upload various types of files to source and get a report
    files = [
        source_bucket.upload_local_file(test_file, 'folder/test-1-1.txt'),
        source_bucket.upload_local_file(test_file, 'folder/test-1-2.txt'),
        source_bucket.upload_local_file(test_file, 'folder/test-2.txt', encryption=SSE_B2_AES),
        source_bucket.upload_local_file(test_file,
                                        'not-in-folder.txt'),  # monitor should ignore this
        source_bucket.upload_local_file(test_file, 'folder/test-3.txt', encryption=SSE_C_AES),
        source_bucket.upload_local_file(test_file, 'folder/test-4.txt', encryption=SSE_C_AES),
        source_bucket.upload_local_file(
            test_file,
            'folder/subfolder/test-5.txt',
            encryption=SSE_C_AES,
            file_retention=RETENTION_GOVERNANCE
        ),
        source_bucket.upload_local_file(
            test_file,
            'folder/test-large-meta.txt',
            file_info={
                'dummy-key': 'a' * 7000,
            },
        ),
        source_bucket.upload_local_file(
            test_file,
            'folder/test-large-meta-encrypted.txt',
            file_info={
                'dummy-key': 'a' * 2048,
            },
            encryption=SSE_C_AES,
        ),
    ]
    report = monitor.scan(scan_destination=False)
    assert report.counter_by_status[ReplicationScanResult(**DEFAULT_REPLICATION_RESULT)] == 2
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_encryption_mode': EncryptionMode.SSE_B2,
        }
    )] == 1
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_encryption_mode': EncryptionMode.SSE_C,
        }
    )] == 2
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_encryption_mode': EncryptionMode.SSE_C,
            'source_has_file_retention': True,
        }
    )] == 1
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_has_large_metadata': True,
        }
    )] == 1
    assert report.counter_by_status[ReplicationScanResult(
        **{
            **DEFAULT_REPLICATION_RESULT,
            'source_encryption_mode': EncryptionMode.SSE_C,
            'source_has_large_metadata': True,
        }
    )] == 1
    # ---- first and last ----
    assert report.samples_by_status_first[ReplicationScanResult(**DEFAULT_REPLICATION_RESULT,)
                                         ][0] == files[0]
    assert report.samples_by_status_last[ReplicationScanResult(**DEFAULT_REPLICATION_RESULT,)
                                        ][0] == files[1]