示例#1
0
        public CreditCardApplicationDecision Evaluate(CreditCardApplication application)
        {
            if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application))
            {
                return(CreditCardApplicationDecision.ReferredToHumanFraudRisk);
            }

            if (application.GrossAnnualIncome >= HighIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoAccepted);
            }

            //Testing with simple property
            //if (_validator.LicenseKey == "EXPIRED")
            //{
            //    return CreditCardApplicationDecision.ReferredToHuman;
            //}

            //Testing with property under hierarchy
            if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED")
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            _validator.ValidationMode =
                application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick;

            //Altered this after the ReferWhenFrequentFlyerValidationError Test
            //bool isValidFrequentFlyerNumber =
            //    _validator.IsValid(application.FrequentFlyerNumber);

            bool isValidFrequentFlyerNumber;

            try
            {
                isValidFrequentFlyerNumber =
                    _validator.IsValid(application.FrequentFlyerNumber);
            }
            catch (Exception)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (!isValidFrequentFlyerNumber)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.Age <= AutoReferralMaxAge)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.GrossAnnualIncome < LowIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoDeclined);
            }

            return(CreditCardApplicationDecision.ReferredToHuman);
        }
示例#2
0
        public CreditCardApplicationDecision Evaluate(CreditCardApplication application)
        {
            if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application))
            {
                return(CreditCardApplicationDecision.ReferredToHumanFraudRisk);
            }

            if (application.GrossAnnualIncome >= HighIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoAccepted);
            }

            //-------------------------------------
            //if (_validator.LicenseKey == "EXPIRED")
            if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED")
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }
            //---this has dependency from external service----------
            _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick;


            //var isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber);//since the validator object is mocked.the bool value will always be false until we setup the return value uisng mock

            bool isValidFrequentFlyerNumber;

            try//for checking concept of THROWING EXCEPTION FROM MOCK OBJECTS
            {
                isValidFrequentFlyerNumber = _validator.IsValid(application.FrequentFlyerNumber);
            }
            catch
            {
                //log
                return(CreditCardApplicationDecision.ReferredToHuman);
            }



            if (!isValidFrequentFlyerNumber)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }


            //--------------------------------------------------------

            if (application.Age <= AutoReferralMaxAge)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.GrossAnnualIncome < LowIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoDeclined);
            }



            return(CreditCardApplicationDecision.ReferredToHuman);
        }
        public CreditCardApplicationDecision Evaluate(CreditCardApplication application)
        {
            if (_fraudLookup != null && _fraudLookup.IsFraudRisk(application))
            {
                return(CreditCardApplicationDecision.ReferredToHumanFraudRisk);
            }

            if (application.GrossAnnualIncome >= HighIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoAccepted);
            }

            if (_validator.ServiceInformation.License.LicenseKey == "EXPIRED")
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            _validator.ValidationMode = application.Age >= 30 ? ValidationMode.Detailed : ValidationMode.Quick;

            //var isValidFrequentFlyerNumber =
            //_validator.IsValid(application.FrequentFlyerNumber);

            bool isValidFrequentFlyerNumber;

            try
            {
                isValidFrequentFlyerNumber =
                    _validator.IsValid(application.FrequentFlyerNumber);
            }
            catch (Exception)
            {
                // log
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (!isValidFrequentFlyerNumber)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.Age <= AutoReferralMaxAge)
            {
                return(CreditCardApplicationDecision.ReferredToHuman);
            }

            if (application.GrossAnnualIncome < LowIncomeThreshold)
            {
                return(CreditCardApplicationDecision.AutoDeclined);
            }

            return(CreditCardApplicationDecision.ReferredToHuman);
        }