From c41f012955192cfa074232d5e836254dcdcd952e Mon Sep 17 00:00:00 2001 From: Daniel Civit Date: Fri, 13 Oct 2023 12:46:25 +0200 Subject: [PATCH] PHPSDK-136: Remove PluginDetails as mandatory from the Order Request (#338) --- src/Api/Transactions/OrderRequest.php | 4 --- .../OrderRequestWithoutPluginDetails.php | 29 +++++++++++++++++++ .../Api/Transactions/OrderRequestTest.php | 14 ++++++++- 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 tests/Fixtures/OrderRequest/OrderRequestWithoutPluginDetails.php diff --git a/src/Api/Transactions/OrderRequest.php b/src/Api/Transactions/OrderRequest.php index d038b95..1595878 100644 --- a/src/Api/Transactions/OrderRequest.php +++ b/src/Api/Transactions/OrderRequest.php @@ -477,10 +477,6 @@ protected function validate(array $data): bool (new TotalAmountValidator())->validate($data); } - if (!$data['plugin']) { - throw new InvalidArgumentException('Required plugin details are missing'); - } - return true; } } diff --git a/tests/Fixtures/OrderRequest/OrderRequestWithoutPluginDetails.php b/tests/Fixtures/OrderRequest/OrderRequestWithoutPluginDetails.php new file mode 100644 index 0000000..ca6edbc --- /dev/null +++ b/tests/Fixtures/OrderRequest/OrderRequestWithoutPluginDetails.php @@ -0,0 +1,29 @@ +createCustomerDetailsFixture(); + return (new OrderRequest()) + ->addOrderId((string)time()) + ->addDescription($this->createDescriptionFixture()) + ->addCustomer($customer) + ->addDelivery($customer); + } +} diff --git a/tests/Unit/Api/Transactions/OrderRequestTest.php b/tests/Unit/Api/Transactions/OrderRequestTest.php index 2b5a80b..2c4563a 100644 --- a/tests/Unit/Api/Transactions/OrderRequestTest.php +++ b/tests/Unit/Api/Transactions/OrderRequestTest.php @@ -14,6 +14,7 @@ use MultiSafepay\Tests\Fixtures\OrderRequest\Arguments\ShoppingCartFixture; use MultiSafepay\Tests\Fixtures\OrderRequest\DirectFixture as DirectOrderRequestFixture; use MultiSafepay\Tests\Fixtures\OrderRequest\GenericOrderRequestFixture; +use MultiSafepay\Tests\Fixtures\OrderRequest\OrderRequestWithoutPluginDetails; use MultiSafepay\Tests\Fixtures\OrderRequest\RedirectFixture as RedirectOrderRequestFixture; use MultiSafepay\Tests\Fixtures\OrderRequest\TerminalFixture; use MultiSafepay\Tests\Fixtures\ValueObject\AddressFixture; @@ -43,6 +44,7 @@ class OrderRequestTest extends TestCase use CountryFixture; use PhoneNumberFixture; use ShoppingCartFixture; + use OrderRequestWithoutPluginDetails; /** * Test if regular creation of an order works @@ -142,7 +144,7 @@ public function testRequestOrderWithTerminalId() $this->assertArrayHasKey('terminal_id', $data['gateway_info']); $this->assertEquals('terminal-id', $data['gateway_info']['terminal_id']); } - + /** * Test if we can add a customer object, only setting up the reference, and get the Order Request */ @@ -157,4 +159,14 @@ public function testCreateAndAddCustomerReference() $this->assertEquals('customer-reference', $data['customer']['reference']); $this->assertArrayNotHasKey('address1', $data['customer']); } + + /** + * Test if order request can be created without set pluginDetails + */ + public function testRequestOrderRequestWithoutPluginDetails() + { + $orderRequest = $this->createOrderRequestWithoutPluginDetails(); + $data = $orderRequest->getData(); + $this->assertArrayNotHasKey('plugin', $data); + } }