public void VipLoan_Create_Succeeds()
        {
            var loan = new VipLoan
            {
                CustomerId   = 1,
                InterestRate = 0.02,
                LoanAmount   = 6000,
                LoanStart    = DateTime.Now,
                LoanEnd      = DateTime.Now.AddYears(2)
            };

            var customer = new VipCustomer
            {
                FirstName      = "Arnas",
                LastName       = "Danaitis",
                MonthlySalary  = 2000,
                PersonalNumber = "12345678101"
            };

            var customerLoans = new List <Loan>
            {
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                }
            };

            Assert.True(_loanDomainService.CanCreateLoan(loan, customer, customerLoans));
        }
        public void VipLoan_Create_NoCustomer_Fails()
        {
            var loan = new VipLoan
            {
                CustomerId   = 1,
                InterestRate = 0.02,
                LoanAmount   = 10000,
                LoanStart    = DateTime.Now,
                LoanEnd      = DateTime.Now.AddYears(2)
            };

            var customerLoans = new List <Loan>
            {
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                }
            };

            Assert.Throws <BusinessException>(() => _loanDomainService.CanCreateLoan(loan, null, customerLoans));
        }
        public void VipLoan_Create_TooManyLoans_Fails()
        {
            var loan = new VipLoan
            {
                CustomerId   = 1,
                InterestRate = 0.02,
                LoanAmount   = 10000,
                LoanStart    = DateTime.Now,
                LoanEnd      = DateTime.Now.AddYears(1)
            };

            var customer = new VipCustomer
            {
                FirstName      = "Arnas",
                LastName       = "Danaitis",
                MonthlySalary  = 1000,
                PersonalNumber = "12345678101"
            };

            var customerLoans = new List <Loan>
            {
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                },
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                },
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                }
            };

            Assert.Throws <BusinessException>(() => _loanDomainService.CanCreateLoan(loan, customer, customerLoans));
        }