justReturn(Payment::METHOD_COMP); $settings = Mockery::mock(StudioSettings::class); $resolver = new BillingMethodResolver($settings); self::assertSame(Payment::METHOD_COMP, $resolver->resolve(5)); } public function testDefaultsToCardWhenStripeConfigured(): void { Functions\when('get_user_meta')->justReturn(''); $settings = Mockery::mock(StudioSettings::class); $settings->shouldReceive('isStripeConfigured')->andReturn(true); $resolver = new BillingMethodResolver($settings); self::assertSame(Payment::METHOD_CARD, $resolver->resolve(5)); } public function testDefaultsToEtransferWhenStripeNotConfigured(): void { Functions\when('get_user_meta')->justReturn(''); $settings = Mockery::mock(StudioSettings::class); $settings->shouldReceive('isStripeConfigured')->andReturn(false); $resolver = new BillingMethodResolver($settings); self::assertSame(Payment::METHOD_ETRANSFER, $resolver->resolve(5)); self::assertSame(Payment::METHOD_ETRANSFER, $resolver->defaultMethod()); } public function testInvalidOverrideFallsBackToDefault(): void { Functions\when('get_user_meta')->justReturn('bogus'); $settings = Mockery::mock(StudioSettings::class); $settings->shouldReceive('isStripeConfigured')->andReturn(true); $resolver = new BillingMethodResolver($settings); self::assertSame(Payment::METHOD_CARD, $resolver->resolve(5)); } }