Classes

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 20 40 60 80 Line Coverage (%) Cyclomatic Complexity App\Domain\Loan\Repository\LoanRepository — Coverage: 84.5% | Lines: 239 | Complexity: 65 App\Domain\Loan\Service\LoanService — Coverage: 92.6% | Lines: 175 | Complexity: 52 App\Domain\Loan\Data\LoanData — Coverage: 50.7% | Lines: 75 | Complexity: 3 App\Domain\Loan\Data\LoanEligibilityData — Coverage: 100.0% | Lines: 19 | Complexity: 3

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Methods

Bubble size = executable lines. Hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 5 10 15 Line Coverage (%) Cyclomatic Complexity App\Domain\Loan\Service\LoanService::makePayment — Coverage: 93.0% | Lines: 43 | Complexity: 6 App\Domain\Loan\Service\LoanService::makeAdditionalPayment — Coverage: 87.2% | Lines: 39 | Complexity: 10 App\Domain\Loan\Data\LoanData::fromRow — Coverage: 100.0% | Lines: 37 | Complexity: 1 App\Domain\Loan\Data\LoanData::toArray — Coverage: 0.0% | Lines: 37 | Complexity: 1 App\Domain\Loan\Service\LoanService::requestLoan — Coverage: 93.8% | Lines: 32 | Complexity: 7 App\Domain\Loan\Repository\LoanRepository::recordPayment — Coverage: 90.3% | Lines: 31 | Complexity: 4 App\Domain\Loan\Service\LoanService::approveLoan — Coverage: 93.8% | Lines: 16 | Complexity: 8 App\Domain\Loan\Repository\LoanRepository::getLoanConfig — Coverage: 93.3% | Lines: 15 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::createLoanRequest — Coverage: 92.9% | Lines: 14 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::approveLoan — Coverage: 92.3% | Lines: 13 | Complexity: 2 App\Domain\Loan\Service\LoanService::acceptLoan — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Domain\Loan\Service\LoanService::declineLoan — Coverage: 92.3% | Lines: 13 | Complexity: 4 App\Domain\Loan\Repository\LoanRepository::recordAdditionalPayment — Coverage: 91.7% | Lines: 12 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::checkEligibility — Coverage: 80.0% | Lines: 10 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::findByInvestorId — Coverage: 90.0% | Lines: 10 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::getConfigBool — Coverage: 80.0% | Lines: 10 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::getPaymentSchedule — Coverage: 90.0% | Lines: 10 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::denyLoan — Coverage: 90.0% | Lines: 10 | Complexity: 2 App\Domain\Loan\Data\LoanEligibilityData::fromRow — Coverage: 100.0% | Lines: 9 | Complexity: 1 App\Domain\Loan\Data\LoanEligibilityData::toArray — Coverage: 100.0% | Lines: 9 | Complexity: 1 App\Domain\Loan\Repository\LoanRepository::findActive — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::getConfig — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::findPending — Coverage: 88.9% | Lines: 9 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::findApproved — Coverage: 0.0% | Lines: 9 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::findById — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::getInvestorAccountId — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::getNextUnpaidScheduleEntry — Coverage: 87.5% | Lines: 8 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::investorHasBlockingLoan — Coverage: 85.7% | Lines: 7 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::updateLoanConfig — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::markActive — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::markRemainingScheduleEntriesPaid — Coverage: 83.3% | Lines: 6 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::acceptLoan — Coverage: 80.0% | Lines: 5 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::declineLoan — Coverage: 80.0% | Lines: 5 | Complexity: 2 App\Domain\Loan\Service\LoanService::denyLoan — Coverage: 100.0% | Lines: 5 | Complexity: 3 App\Domain\Loan\Repository\LoanRepository::generatePaymentSchedule — Coverage: 75.0% | Lines: 4 | Complexity: 2 App\Domain\Loan\Repository\LoanRepository::reamortizeLoan — Coverage: 75.0% | Lines: 4 | Complexity: 2 App\Domain\Loan\Service\LoanService::getLoan — Coverage: 100.0% | Lines: 4 | Complexity: 2 App\Domain\Loan\Service\LoanService::getPaymentSchedule — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Domain\Loan\Data\LoanData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Data\LoanEligibilityData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Repository\LoanRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::checkEligibility — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getInvestorLoans — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getPendingLoans — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getActiveLoans — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getApprovedLoans — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getConfig — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Loan\Service\LoanService::getValidTerms — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

Sorted by descending CRAP (Change Risk Anti-Patterns) index.

Method CRAP Coverage
App\Domain\Loan\Repository\LoanRepository::findApproved120.0%
App\Domain\Loan\Service\LoanService::makeAdditionalPayment10.2187.2%
App\Domain\Loan\Service\LoanService::approveLoan8.0293.8%
App\Domain\Loan\Service\LoanService::requestLoan7.0193.8%
App\Domain\Loan\Service\LoanService::makePayment6.0193.0%
App\Domain\Loan\Repository\LoanRepository::recordPayment4.0190.3%
App\Domain\Loan\Service\LoanService::declineLoan4.0192.3%
App\Domain\Loan\Repository\LoanRepository::checkEligibility3.0780.0%
App\Domain\Loan\Repository\LoanRepository::getConfigBool3.0780.0%
App\Domain\Loan\Repository\LoanRepository::findById3.0287.5%
App\Domain\Loan\Repository\LoanRepository::getInvestorAccountId3.0287.5%
App\Domain\Loan\Repository\LoanRepository::getNextUnpaidScheduleEntry3.0287.5%
App\Domain\Loan\Repository\LoanRepository::findByInvestorId3.0190.0%
App\Domain\Loan\Repository\LoanRepository::findActive3.0188.9%
App\Domain\Loan\Repository\LoanRepository::getConfig3.0188.9%
App\Domain\Loan\Repository\LoanRepository::getPaymentSchedule3.0190.0%
App\Domain\Loan\Repository\LoanRepository::findPending3.0188.9%
App\Domain\Loan\Repository\LoanRepository::getLoanConfig3.0093.3%
App\Domain\Loan\Service\LoanService::acceptLoan3100.0%
App\Domain\Loan\Service\LoanService::denyLoan3100.0%
App\Domain\Loan\Repository\LoanRepository::generatePaymentSchedule2.0675.0%
App\Domain\Loan\Repository\LoanRepository::reamortizeLoan2.0675.0%
App\Domain\Loan\Repository\LoanRepository::acceptLoan2.0380.0%
App\Domain\Loan\Repository\LoanRepository::declineLoan2.0380.0%
App\Domain\Loan\Repository\LoanRepository::updateLoanConfig2.0283.3%
App\Domain\Loan\Repository\LoanRepository::markActive2.0283.3%
App\Domain\Loan\Repository\LoanRepository::markRemainingScheduleEntriesPaid2.0283.3%
App\Domain\Loan\Repository\LoanRepository::investorHasBlockingLoan2.0185.7%
App\Domain\Loan\Data\LoanData::toArray20.0%
App\Domain\Loan\Repository\LoanRepository::createLoanRequest2.0092.9%
App\Domain\Loan\Repository\LoanRepository::approveLoan2.0092.3%
App\Domain\Loan\Repository\LoanRepository::denyLoan2.0090.0%
App\Domain\Loan\Repository\LoanRepository::recordAdditionalPayment2.0091.7%
App\Domain\Loan\Service\LoanService::getLoan2100.0%
App\Domain\Loan\Service\LoanService::getApprovedLoans20.0%
App\Domain\Loan\Data\LoanData::__construct1100.0%
App\Domain\Loan\Data\LoanData::fromRow1100.0%
App\Domain\Loan\Data\LoanEligibilityData::__construct1100.0%
App\Domain\Loan\Data\LoanEligibilityData::fromRow1100.0%
App\Domain\Loan\Data\LoanEligibilityData::toArray1100.0%
App\Domain\Loan\Repository\LoanRepository::__construct1100.0%
App\Domain\Loan\Service\LoanService::__construct1100.0%
App\Domain\Loan\Service\LoanService::checkEligibility1100.0%
App\Domain\Loan\Service\LoanService::getInvestorLoans1100.0%
App\Domain\Loan\Service\LoanService::getPendingLoans1100.0%
App\Domain\Loan\Service\LoanService::getActiveLoans1100.0%
App\Domain\Loan\Service\LoanService::getConfig1100.0%
App\Domain\Loan\Service\LoanService::getPaymentSchedule1100.0%
App\Domain\Loan\Service\LoanService::getValidTerms1100.0%