From 4a95f22e7522c97065ee949f2e18abbf707c56ab Mon Sep 17 00:00:00 2001 From: Emili Castells Guasch Date: Thu, 15 Feb 2024 12:16:44 +0100 Subject: [PATCH] Add unit test --- modules/ppcp-wc-subscriptions/services.php | 2 +- .../src/Helper/SubscriptionHelper.php | 19 +--------- .../Helper/SubscriptionHelperTest.php | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 tests/PHPUnit/WcSubscriptions/Helper/SubscriptionHelperTest.php diff --git a/modules/ppcp-wc-subscriptions/services.php b/modules/ppcp-wc-subscriptions/services.php index be3bb7f04..0046f4605 100644 --- a/modules/ppcp-wc-subscriptions/services.php +++ b/modules/ppcp-wc-subscriptions/services.php @@ -16,7 +16,7 @@ use WooCommerce\PayPalCommerce\WcSubscriptions\Helper\SubscriptionHelper; return array( 'wc-subscriptions.helper' => static function ( ContainerInterface $container ): SubscriptionHelper { - return new SubscriptionHelper( $container->get( 'wcgateway.settings' ) ); + return new SubscriptionHelper(); }, 'wc-subscriptions.renewal-handler' => static function ( ContainerInterface $container ): RenewalHandler { $logger = $container->get( 'woocommerce.logger.woocommerce' ); diff --git a/modules/ppcp-wc-subscriptions/src/Helper/SubscriptionHelper.php b/modules/ppcp-wc-subscriptions/src/Helper/SubscriptionHelper.php index c0247c3a1..214b370d5 100644 --- a/modules/ppcp-wc-subscriptions/src/Helper/SubscriptionHelper.php +++ b/modules/ppcp-wc-subscriptions/src/Helper/SubscriptionHelper.php @@ -16,7 +16,6 @@ use WC_Product_Subscription_Variation; use WC_Subscription; use WC_Subscriptions; use WC_Subscriptions_Product; -use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings; use WooCommerce\PayPalCommerce\WcGateway\Exception\NotFoundException; /** @@ -24,22 +23,6 @@ use WooCommerce\PayPalCommerce\WcGateway\Exception\NotFoundException; */ class SubscriptionHelper { - /** - * The settings. - * - * @var Settings - */ - private $settings; - - /** - * SubscriptionHelper constructor. - * - * @param Settings $settings The settings. - */ - public function __construct( Settings $settings ) { - $this->settings = $settings; - } - /** * Whether the current product is a subscription. * @@ -308,7 +291,7 @@ class SubscriptionHelper { * @return string */ public function previous_transaction( WC_Subscription $subscription ): string { - $orders = $subscription->get_related_orders( 'all', array( 'parent', 'renewal' ) ); + $orders = $subscription->get_related_orders( 'ids', array( 'parent', 'renewal' ) ); if ( ! $orders ) { return ''; } diff --git a/tests/PHPUnit/WcSubscriptions/Helper/SubscriptionHelperTest.php b/tests/PHPUnit/WcSubscriptions/Helper/SubscriptionHelperTest.php new file mode 100644 index 000000000..bbde3ebe0 --- /dev/null +++ b/tests/PHPUnit/WcSubscriptions/Helper/SubscriptionHelperTest.php @@ -0,0 +1,37 @@ +shouldReceive('get_related_orders') + ->andReturn( + [ + 1 => 1, + 3 => 3, + 2 => 2, + ] + ); + + $wc_order = Mockery::mock(WC_Order::class); + $wc_order->shouldReceive('get_status')->andReturn('processing'); + $wc_order->shouldReceive('get_transaction_id')->andReturn('ABC123'); + + when('wc_get_order')->justReturn($wc_order); + + $this->assertSame( + 'ABC123', + (new SubscriptionHelper())->previous_transaction($subscription) + ); + } +}