def METHOD_NAME(
        self,
        prompt_for_environment_name_mock,
        get_unique_name_mock,
        get_environment_names_mock,
        echo_mock,
        prompt_for_cname_mock,
        clone_environment_mock
):
    clone_request_mock = mock.MagicMock()
    clone_request_mock.app_name = 'my-application'
    clone_request_mock.env_name = 'unavailable-environment-name'
    prompt_for_cname_mock.return_value = 'my-environment-cname'
    get_environment_names_mock.return_value = ['environment-1', 'environment-2']
    get_unique_name_mock.return_value = 'environment-3'
    prompt_for_environment_name_mock.return_value = 'my-environment'
    environment_mock = Environment.json_to_environment_object(mock_responses.CREATE_ENVIRONMENT_RESPONSE)
    clone_environment_mock.side_effect = [
        cloneops.InvalidParameterValueError('Environment unavailable-environment-name already exists.'),
        (environment_mock, 'request-id')
    ]
    self.assertEqual(
        (environment_mock, 'request-id'),
        cloneops.clone_env(clone_request_mock)
    )
    echo_mock.assert_called_once_with('An environment with that name already exists.')
    get_environment_names_mock.assert_called_once_with('my-application')
    get_unique_name_mock.assert_called_once_with(
        'unavailable-environment-name',
        ['environment-1', 'environment-2']
    )
    self.assertEqual('my-environment', clone_request_mock.env_name)