Example #1
0
        public void AcceptHighIncomeApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication {
                GrossAnualInput = 100_000
            };
            var decision = sut.Evaluate(application);

            Assert.Equal(CreditCarApplicationDecision.AutoAccepted, decision);
        }
Example #2
0
        public void ReferYoungApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.IsValid(It.IsAny <string>())).Returns(true);
            mockValidator.DefaultValue = DefaultValue.Mock;

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication {
                Age = 19
            };
            var decision = sut.Evaluate(application);

            Assert.Equal(CreditCarApplicationDecision.ReferredToHuman, decision);
        }
Example #3
0
        public void SetDetailedLookupForOlderApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.ServiceInformation.License.LicenseKey).Returns("OK");

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication
            {
                Age = 30
            };

            sut.Evaluate(application);

            mockValidator.VerifySet(x => x.ValidationMode = It.IsAny <ValidationMode>(), Times.Once);
        }
Example #4
0
        public void ValidateFrequentFlyerNumberForLowIncomeApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.ServiceInformation.License.LicenseKey).Returns("OK");

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication
            {
                GrossAnualInput     = 10_000,
                FrecuentFlyerNumber = "1234"
            };

            sut.Evaluate(application);

            mockValidator.Verify(x => x.IsValid(It.IsAny <string>()), Times.Once);
        }
Example #5
0
        public void UseDetailedLookupWithOlderApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.ServiceInformation.License.LicenseKey).Returns(GetLicense);
            mockValidator.SetupProperty(x => x.ValidationMode);

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication
            {
                Age = 42
            };

            var decision = sut.Evaluate(application);

            Assert.Equal(ValidationMode.Detailed, mockValidator.Object.ValidationMode);
        }
Example #6
0
        public void ReferWhenLicenseExpired()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.IsValid(It.IsAny <string>())).Returns(true);
            mockValidator.Setup(x => x.ServiceInformation.License.LicenseKey).Returns(GetLicense);

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication
            {
                Age = 42
            };

            var decision = sut.Evaluate(application);

            Assert.Equal(CreditCarApplicationDecision.ReferredToHuman, decision);
        }
Example #7
0
        public void DeclineLowIncomeApplications()
        {
            var mockValidator = new Mock <IFrequentFlyerNumberValidator>();

            mockValidator.Setup(x => x.IsValid(It.IsAny <string>())).Returns(true);
            mockValidator.DefaultValue = DefaultValue.Mock;

            var sut         = new CreditCarApplicationEvaluator(mockValidator.Object);
            var application = new CreditCarApplication
            {
                Age             = 42,
                GrossAnualInput = 19_000
            };
            var decision = sut.Evaluate(application);

            Assert.Equal(CreditCarApplicationDecision.AutoDeclined, decision);
        }