def test_resolve_roles__interactive_mode__service_role_could_not_be_found__simulate_customer_viewing_policies(
            self, get_managed_policy_document_mock, get_input_mock,
            create_default_service_role_mock, get_service_role_mock,
            create_default_instance_profile_mock):
        get_managed_policy_document_mock.side_effect = [
            {
                "PolicyVersion": {
                    "Document": {}
                }
            },
            {
                "PolicyVersion": {
                    "Document": {}
                }
            },
        ]
        get_input_mock.side_effect = ['view', '\n']
        create_default_instance_profile_mock.return_value = 'default-profile'
        get_service_role_mock.return_value = None
        create_default_service_role_mock.return_value = 'aws-elasticbeanstalk-service-role'
        env_request = CreateEnvironmentRequest(
            app_name='my-application',
            env_name='environment-1',
            cname='cname-1',
            platform=SolutionStack(
                '64bit Amazon Linux 2015.09 v2.0.6 running Multi-container Docker 1.7.1 (Generic)'
            ),
            elb_type='network',
            group_name='dev',
        )

        createops.resolve_roles(env_request, True)
        self.assertEqual('aws-elasticbeanstalk-service-role',
                         env_request.service_role)
    def test_resolve_roles__non_interactive_mode__no_healthd_support_for_platform__service_role_cannot_determined(
            self, get_service_role_mock, create_default_instance_profile_mock):
        env_request = CreateEnvironmentRequest(
            app_name='my-application',
            env_name='environment-1',
            cname='cname-1',
            platform=SolutionStack(
                '64bit Windows Server Core 2016 v1.2.0 running IIS 10.0'),
            elb_type='network',
            group_name='dev',
            instance_profile='developer')

        createops.resolve_roles(env_request, False)

        get_service_role_mock.assert_not_called()
        create_default_instance_profile_mock.assert_not_called()
        self.assertIsNone(env_request.service_role)
    def test_resolve_roles__non_interactive_mode__profile_passed_is_other_role_name_other_than_service_role__existing_role_retrieved_from_service(
            self, get_service_role_mock, create_default_instance_profile_mock):
        get_service_role_mock.return_value = 'service-role'
        env_request = CreateEnvironmentRequest(
            app_name='my-application',
            env_name='environment-1',
            cname='cname-1',
            platform=SolutionStack(
                '64bit Amazon Linux 2015.09 v2.0.6 running Multi-container Docker 1.7.1 (Generic)'
            ),
            elb_type='network',
            group_name='dev',
            instance_profile='developer')

        createops.resolve_roles(env_request, False)

        create_default_instance_profile_mock.assert_not_called()