Merge branch 'trunk' into pcp-157-blocks

This commit is contained in:
Alex P 2023-02-15 11:38:31 +02:00
commit 70c48762fa
No known key found for this signature in database
GPG key ID: 54487A734A204D71
39 changed files with 893 additions and 849 deletions

View file

@ -24,7 +24,6 @@ use WooCommerce\PayPalCommerce\ApiClient\Factory\OrderFactory;
use WooCommerce\PayPalCommerce\ApiClient\Factory\PatchCollectionFactory;
use WooCommerce\PayPalCommerce\ApiClient\Helper\ErrorResponse;
use WooCommerce\PayPalCommerce\ApiClient\Repository\ApplicationContextRepository;
use WooCommerce\PayPalCommerce\ApiClient\Repository\PayPalRequestIdRepository;
use Mockery;
use Psr\Log\LoggerInterface;
use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
@ -68,9 +67,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldNotReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order_id')->with($orderId)->andReturn('uniqueRequestId');
$headers = Mockery::mock(Requests_Utility_CaseInsensitiveDictionary::class);
$headers->shouldReceive('getAll');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
@ -85,7 +81,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -133,9 +128,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('warning');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order_id')->with($orderId)->andReturn('uniqueRequestId');
$headers = Mockery::mock(Requests_Utility_CaseInsensitiveDictionary::class);
$headers->shouldReceive('getAll');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
@ -150,7 +142,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -191,9 +182,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order_id')->with($orderId)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -206,7 +194,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -261,9 +248,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldNotReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToCapture)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -276,7 +260,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -334,7 +317,6 @@ class OrderEndpointTest extends TestCase
$logger = Mockery::mock(LoggerInterface::class);
$logger->shouldNotReceive('log');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -347,7 +329,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -381,9 +362,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToCapture)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -396,7 +374,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -437,9 +414,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToCapture)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -452,7 +426,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -495,9 +468,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldNotReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToCapture)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -512,7 +482,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -579,9 +548,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldNotReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToUpdate)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -596,7 +562,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -625,9 +590,6 @@ class OrderEndpointTest extends TestCase
if ($args['headers']['Prefer'] !== 'return=representation') {
return false;
}
if ($args['headers']['PayPal-Request-Id'] !== 'uniqueRequestId') {
return false;
}
$body = json_decode($args['body']);
if (! is_array($body) || $body[0] !== 'patch-1' || $body[1] !== 'patch-2') {
return false;
@ -688,9 +650,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('log');
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToUpdate)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -703,7 +662,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -727,9 +685,6 @@ class OrderEndpointTest extends TestCase
if ($args['headers']['Prefer'] !== 'return=representation') {
return false;
}
if ($args['headers']['PayPal-Request-Id'] !== 'uniqueRequestId') {
return false;
}
$body = json_decode($args['body']);
if (! is_array($body) || $body[0] !== 'patch-1' || $body[1] !== 'patch-2') {
return false;
@ -791,9 +746,6 @@ class OrderEndpointTest extends TestCase
$logger->shouldReceive('debug');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('get_for_order')->with($orderToUpdate)->andReturn('uniqueRequestId');
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -808,7 +760,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -833,9 +784,6 @@ class OrderEndpointTest extends TestCase
if ($args['headers']['Prefer'] !== 'return=representation') {
return false;
}
if ($args['headers']['PayPal-Request-Id'] !== 'uniqueRequestId') {
return false;
}
$body = json_decode($args['body']);
if (! is_array($body) || $body[0] !== 'patch-1' || $body[1] !== 'patch-2') {
return false;
@ -873,7 +821,6 @@ class OrderEndpointTest extends TestCase
$logger = Mockery::mock(LoggerInterface::class);
$logger->shouldNotReceive('log');
$applicationContextRepository = Mockery::mock(ApplicationContextRepository::class);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$fraudnet = Mockery::mock(FraudNet::class);
@ -886,7 +833,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -938,15 +884,6 @@ class OrderEndpointTest extends TestCase
->expects('current_context')
->with(ApplicationContext::SHIPPING_PREFERENCE_NO_SHIPPING, ApplicationContext::USER_ACTION_CONTINUE)
->andReturn($applicationContext);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('set_for_order')->andReturnUsing(function ($order, $id) use ($expectedOrder) : bool {
if ($order !== $expectedOrder) {
return false;
}
return strpos($id, 'ppcp') !== false;
});
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$subscription_helper->shouldReceive('cart_contains_subscription')->andReturn(true);
@ -960,7 +897,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -1051,15 +987,6 @@ class OrderEndpointTest extends TestCase
->expects('current_context')
->with(ApplicationContext::SHIPPING_PREFERENCE_GET_FROM_FILE, ApplicationContext::USER_ACTION_CONTINUE)
->andReturn($applicationContext);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$paypalRequestIdRepository
->expects('set_for_order')->andReturnUsing(function ($order, $id) use ($expectedOrder) : bool {
if ($order !== $expectedOrder) {
return false;
}
return strpos($id, 'ppcp') !== false;
});
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$subscription_helper->shouldReceive('cart_contains_subscription')->andReturn(true);
@ -1073,7 +1000,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -1141,7 +1067,6 @@ class OrderEndpointTest extends TestCase
->expects('current_context')
->with(ApplicationContext::SHIPPING_PREFERENCE_NO_SHIPPING, ApplicationContext::USER_ACTION_CONTINUE)
->andReturn($applicationContext);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$subscription_helper->shouldReceive('cart_contains_subscription')->andReturn(true);
@ -1155,7 +1080,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -1234,7 +1158,6 @@ class OrderEndpointTest extends TestCase
->expects('current_context')
->with(ApplicationContext::SHIPPING_PREFERENCE_GET_FROM_FILE, ApplicationContext::USER_ACTION_CONTINUE)
->andReturn($applicationContext);
$paypalRequestIdRepository = Mockery::mock(PayPalRequestIdRepository::class);
$subscription_helper = Mockery::mock(SubscriptionHelper::class);
$subscription_helper->shouldReceive('cart_contains_subscription')->andReturn(true);
@ -1248,7 +1171,6 @@ class OrderEndpointTest extends TestCase
$intent,
$logger,
$applicationContextRepository,
$paypalRequestIdRepository,
$subscription_helper,
false,
$fraudnet
@ -1294,3 +1216,4 @@ class OrderEndpointTest extends TestCase
$testee->create([$purchaseUnit], ApplicationContext::SHIPPING_PREFERENCE_GET_FROM_FILE, $payer);
}
}

View file

@ -1,58 +0,0 @@
<?php
declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\ApiClient\Repository;
use Mockery;
use WooCommerce\PayPalCommerce\ApiClient\Entity\Order;
use WooCommerce\PayPalCommerce\TestCase;
use function Brain\Monkey\Functions\when;
class PayPalRequestIdRepositoryTest extends TestCase
{
private $testee;
private $data = [];
public function setUp(): void
{
parent::setUp();
$this->testee = new PayPalRequestIdRepository();
when('get_option')->alias(function () {
return $this->data;
});
when('update_option')->alias(function (string $key, array $data) {
$this->data = $data;
});
}
public function testForOrder()
{
$this->testee->set_for_order($this->createPaypalOrder('42'), 'request1');
$this->testee->set_for_order($this->createPaypalOrder('43'), 'request2');
self::assertEquals('request1', $this->testee->get_for_order($this->createPaypalOrder('42')));
self::assertEquals('request2', $this->testee->get_for_order($this->createPaypalOrder('43')));
self::assertEquals('', $this->testee->get_for_order($this->createPaypalOrder('41')));
}
public function testExpiration()
{
$this->testee->set_for_order($this->createPaypalOrder('42'), 'request1');
$this->data['42']['expiration'] = time() - 1;
$this->testee->set_for_order($this->createPaypalOrder('43'), 'request2');
self::assertEquals('', $this->testee->get_for_order($this->createPaypalOrder('42')));
self::assertEquals('request2', $this->testee->get_for_order($this->createPaypalOrder('43')));
}
private function createPaypalOrder(string $id): Order {
$order = Mockery::mock(Order::class);
$order
->shouldReceive('id')
->andReturn($id);
return $order;
}
}