# coding: utf-8

"""
    Agilicus API

    Agilicus API endpoints  # noqa: E501

    The version of the OpenAPI document: 2021.04.15
    Contact: dev@agilicus.com
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import agilicus_api
from agilicus_api.models.mfa_challenge_question import MFAChallengeQuestion  # noqa: E501
from agilicus_api.rest import ApiException

class TestMFAChallengeQuestion(unittest.TestCase):
    """MFAChallengeQuestion unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test MFAChallengeQuestion
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = agilicus_api.models.mfa_challenge_question.MFAChallengeQuestion()  # noqa: E501
        if include_optional :
            return MFAChallengeQuestion(
                input = agilicus_api.models.mfa_challenge_question_input.MFAChallengeQuestionInput(
                    login_info = agilicus_api.models.mfa_challenge_question_login_info.MFAChallengeQuestionLoginInfo(
                        user_preference = 'organisation_policy', 
                        client_id = 'app-1', 
                        client_guid = 'absjfladasdf23', 
                        issuer_org_id = 'absjfladasdf23', 
                        issuer_guid = 'absjfladasdf23', 
                        org_id = 'absjfladasdf23', 
                        user_id = 'jjkkGmwB9oTJWDjIglTU', 
                        user_object = agilicus_api.models.user_summary.UserSummary(
                            id = '123', 
                            external_id = '123', 
                            enabled = False, 
                            status = 'active', 
                            first_name = 'Alice', 
                            last_name = 'Kim', 
                            email = 'foo@example.com', 
                            provider = 'Google', 
                            roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                            org_id = '123', 
                            created = '2015-07-07T15:49:51.230+02:00', 
                            updated = '2015-07-07T15:49:51.230+02:00', 
                            auto_created = True, 
                            upstream_user_identities = [
                                agilicus_api.models.upstream_user_identity.UpstreamUserIdentity(
                                    metadata = {"id":"ac233asaksjfF","created":"2017-07-07T15:49:51.230+00:00","updated":"2020-01-27T12:19:46.430+00:00"}, 
                                    spec = agilicus_api.models.upstream_user_identity_spec.UpstreamUserIdentitySpec(
                                        upstream_user_id = 'aa-bb-cc-11-22-33', 
                                        upstream_idp_id = 'https://auth.cloud.egov.city', 
                                        local_user_id = 'tuU7smH86zAXMl76sua6xQ', ), )
                                ], 
                            cascade = True, ), 
                        login_session = agilicus_api.models.login_session.LoginSession(
                            session_id = 'abc123iamaguid', 
                            number_of_logins = 3, 
                            number_of_failed_multi_factor_challenges = 3, 
                            single_sign_on_time = '2015-07-07T15:49:51.230+02:00', 
                            user_is_authenticated = True, 
                            user_is_authenticated_by_upstream = True, 
                            user_is_authenticated_by_cache = True, ), 
                        upstream_idp = 'city-adfs', 
                        ip_address = '127.0.0.1', 
                        amr_claim_present = True, 
                        last_mfa_login = '2015-07-07T15:49:51.230+02:00', 
                        user_mfa_preferences = [
                            agilicus_api.models.mfa_challenge_method.MFAChallengeMethod(
                                spec = agilicus_api.models.mfa_challenge_method_spec.MFAChallengeMethodSpec(
                                    priority = 1, 
                                    challenge_type = '0', 
                                    endpoint = '0', 
                                    origin = 'agilicus.cloud', 
                                    nickname = '0', 
                                    enabled = True, ), )
                            ], ), )
            )
        else :
            return MFAChallengeQuestion(
                input = agilicus_api.models.mfa_challenge_question_input.MFAChallengeQuestionInput(
                    login_info = agilicus_api.models.mfa_challenge_question_login_info.MFAChallengeQuestionLoginInfo(
                        user_preference = 'organisation_policy', 
                        client_id = 'app-1', 
                        client_guid = 'absjfladasdf23', 
                        issuer_org_id = 'absjfladasdf23', 
                        issuer_guid = 'absjfladasdf23', 
                        org_id = 'absjfladasdf23', 
                        user_id = 'jjkkGmwB9oTJWDjIglTU', 
                        user_object = agilicus_api.models.user_summary.UserSummary(
                            id = '123', 
                            external_id = '123', 
                            enabled = False, 
                            status = 'active', 
                            first_name = 'Alice', 
                            last_name = 'Kim', 
                            email = 'foo@example.com', 
                            provider = 'Google', 
                            roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                            org_id = '123', 
                            created = '2015-07-07T15:49:51.230+02:00', 
                            updated = '2015-07-07T15:49:51.230+02:00', 
                            auto_created = True, 
                            upstream_user_identities = [
                                agilicus_api.models.upstream_user_identity.UpstreamUserIdentity(
                                    metadata = {"id":"ac233asaksjfF","created":"2017-07-07T15:49:51.230+00:00","updated":"2020-01-27T12:19:46.430+00:00"}, 
                                    spec = agilicus_api.models.upstream_user_identity_spec.UpstreamUserIdentitySpec(
                                        upstream_user_id = 'aa-bb-cc-11-22-33', 
                                        upstream_idp_id = 'https://auth.cloud.egov.city', 
                                        local_user_id = 'tuU7smH86zAXMl76sua6xQ', ), )
                                ], 
                            cascade = True, ), 
                        login_session = agilicus_api.models.login_session.LoginSession(
                            session_id = 'abc123iamaguid', 
                            number_of_logins = 3, 
                            number_of_failed_multi_factor_challenges = 3, 
                            single_sign_on_time = '2015-07-07T15:49:51.230+02:00', 
                            user_is_authenticated = True, 
                            user_is_authenticated_by_upstream = True, 
                            user_is_authenticated_by_cache = True, ), 
                        upstream_idp = 'city-adfs', 
                        ip_address = '127.0.0.1', 
                        amr_claim_present = True, 
                        last_mfa_login = '2015-07-07T15:49:51.230+02:00', 
                        user_mfa_preferences = [
                            agilicus_api.models.mfa_challenge_method.MFAChallengeMethod(
                                spec = agilicus_api.models.mfa_challenge_method_spec.MFAChallengeMethodSpec(
                                    priority = 1, 
                                    challenge_type = '0', 
                                    endpoint = '0', 
                                    origin = 'agilicus.cloud', 
                                    nickname = '0', 
                                    enabled = True, ), )
                            ], ), ),
        )

    def testMFAChallengeQuestion(self):
        """Test MFAChallengeQuestion"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


if __name__ == '__main__':
    unittest.main()
