Classes

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

0% 20% 40% 60% 80% 100% 0 10 20 30 Line Coverage (%) Cyclomatic Complexity App\Domain\Stripe\Service\StripeService — Coverage: 0.0% | Lines: 105 | Complexity: 25 App\Domain\Stripe\Service\InvestorStripeService — Coverage: 94.2% | Lines: 52 | Complexity: 19 App\Domain\Stripe\Repository\StripeWebhookRepository — Coverage: 40.0% | Lines: 30 | Complexity: 7 App\Domain\Stripe\Service\StripeWebhookService — Coverage: 100.0% | Lines: 6 | Complexity: 3 App\Domain\Stripe\Exception\WebhookSignatureException — Coverage: 100.0% | Lines: 2 | Complexity: 2 App\Domain\Stripe\Data\PaymentChargeData — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\PaymentMethodData — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\SetupIntentData — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\StripeCustomerData — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\WebhookEventData — Coverage: 100.0% | Lines: 1 | Complexity: 1

Methods

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

0% 20% 40% 60% 80% 100% 0 2 4 6 8 Line Coverage (%) Cyclomatic Complexity App\Domain\Stripe\Service\StripeService::listPaymentMethods — Coverage: 0.0% | Lines: 27 | Complexity: 6 App\Domain\Stripe\Service\StripeService::chargePaymentMethod — Coverage: 0.0% | Lines: 26 | Complexity: 5 App\Domain\Stripe\Service\InvestorStripeService::chargeLoanPayment — Coverage: 90.0% | Lines: 20 | Complexity: 6 App\Domain\Stripe\Service\StripeService::createCustomer — Coverage: 0.0% | Lines: 14 | Complexity: 4 App\Domain\Stripe\Service\InvestorStripeService::ensureCustomerExists — Coverage: 100.0% | Lines: 13 | Complexity: 3 App\Domain\Stripe\Repository\StripeWebhookRepository::recordReceived — Coverage: 91.7% | Lines: 12 | Complexity: 2 App\Domain\Stripe\Service\StripeService::findCustomer — Coverage: 0.0% | Lines: 11 | Complexity: 3 App\Domain\Stripe\Repository\StripeWebhookRepository::markFailed — Coverage: 0.0% | Lines: 10 | Complexity: 2 App\Domain\Stripe\Service\StripeService::createSetupIntent — Coverage: 0.0% | Lines: 10 | Complexity: 1 App\Domain\Stripe\Service\StripeService::parseWebhookEvent — Coverage: 0.0% | Lines: 10 | Complexity: 3 App\Domain\Stripe\Service\InvestorStripeService::assertInvestorOwnsPaymentMethod — Coverage: 87.5% | Lines: 8 | Complexity: 4 App\Domain\Stripe\Repository\StripeWebhookRepository::markProcessed — Coverage: 0.0% | Lines: 7 | Complexity: 2 App\Domain\Stripe\Service\StripeService::setDefaultPaymentMethod — Coverage: 0.0% | Lines: 5 | Complexity: 1 App\Domain\Stripe\Service\StripeWebhookService::handleIncomingEvent — Coverage: 100.0% | Lines: 5 | Complexity: 2 App\Domain\Stripe\Service\InvestorStripeService::listPaymentMethods — Coverage: 100.0% | Lines: 4 | Complexity: 2 App\Domain\Stripe\Service\InvestorStripeService::createSetupIntentClientSecret — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Domain\Stripe\Service\InvestorStripeService::detachPaymentMethod — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Domain\Stripe\Service\InvestorStripeService::setDefaultPaymentMethod — Coverage: 100.0% | Lines: 2 | Complexity: 1 App\Domain\Stripe\Data\PaymentChargeData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\PaymentMethodData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\SetupIntentData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\StripeCustomerData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Data\WebhookEventData::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Exception\WebhookSignatureException::getStatusCode — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Exception\WebhookSignatureException::getTitle — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Repository\StripeWebhookRepository::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Service\InvestorStripeService::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Service\StripeService::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Service\StripeService::detachPaymentMethod — Coverage: 0.0% | Lines: 1 | Complexity: 1 App\Domain\Stripe\Service\StripeWebhookService::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1

 

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

Method CRAP Coverage
App\Domain\Stripe\Service\StripeService::listPaymentMethods420.0%
App\Domain\Stripe\Service\StripeService::chargePaymentMethod300.0%
App\Domain\Stripe\Service\StripeService::createCustomer200.0%
App\Domain\Stripe\Service\StripeService::findCustomer120.0%
App\Domain\Stripe\Service\StripeService::parseWebhookEvent120.0%
App\Domain\Stripe\Service\InvestorStripeService::chargeLoanPayment6.0490.0%
App\Domain\Stripe\Repository\StripeWebhookRepository::markProcessed60.0%
App\Domain\Stripe\Repository\StripeWebhookRepository::markFailed60.0%
App\Domain\Stripe\Service\InvestorStripeService::assertInvestorOwnsPaymentMethod4.0387.5%
App\Domain\Stripe\Service\InvestorStripeService::ensureCustomerExists3100.0%
App\Domain\Stripe\Repository\StripeWebhookRepository::recordReceived2.0091.7%
App\Domain\Stripe\Service\InvestorStripeService::listPaymentMethods2100.0%
App\Domain\Stripe\Service\StripeService::__construct20.0%
App\Domain\Stripe\Service\StripeService::createSetupIntent20.0%
App\Domain\Stripe\Service\StripeService::detachPaymentMethod20.0%
App\Domain\Stripe\Service\StripeService::setDefaultPaymentMethod20.0%
App\Domain\Stripe\Service\StripeWebhookService::handleIncomingEvent2100.0%
App\Domain\Stripe\Data\PaymentChargeData::__construct1100.0%
App\Domain\Stripe\Data\PaymentMethodData::__construct1100.0%
App\Domain\Stripe\Data\SetupIntentData::__construct1100.0%
App\Domain\Stripe\Data\StripeCustomerData::__construct1100.0%
App\Domain\Stripe\Data\WebhookEventData::__construct1100.0%
App\Domain\Stripe\Exception\WebhookSignatureException::getStatusCode1100.0%
App\Domain\Stripe\Exception\WebhookSignatureException::getTitle1100.0%
App\Domain\Stripe\Repository\StripeWebhookRepository::__construct1100.0%
App\Domain\Stripe\Service\InvestorStripeService::__construct1100.0%
App\Domain\Stripe\Service\InvestorStripeService::createSetupIntentClientSecret1100.0%
App\Domain\Stripe\Service\InvestorStripeService::detachPaymentMethod1100.0%
App\Domain\Stripe\Service\InvestorStripeService::setDefaultPaymentMethod1100.0%
App\Domain\Stripe\Service\StripeWebhookService::__construct1100.0%