Skip to content

Commit c41f012

Browse files
authored
PHPSDK-136: Remove PluginDetails as mandatory from the Order Request (#338)
1 parent bb6bc01 commit c41f012

File tree

3 files changed

+42
-5
lines changed

3 files changed

+42
-5
lines changed

src/Api/Transactions/OrderRequest.php

-4
Original file line numberDiff line numberDiff line change
@@ -477,10 +477,6 @@ protected function validate(array $data): bool
477477
(new TotalAmountValidator())->validate($data);
478478
}
479479

480-
if (!$data['plugin']) {
481-
throw new InvalidArgumentException('Required plugin details are missing');
482-
}
483-
484480
return true;
485481
}
486482
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php declare(strict_types=1);
2+
/**
3+
* Copyright © MultiSafepay, Inc. All rights reserved.
4+
* See DISCLAIMER.md for disclaimer details.
5+
*/
6+
7+
namespace MultiSafepay\Tests\Fixtures\OrderRequest;
8+
9+
use MultiSafepay\Api\Transactions\OrderRequest;
10+
11+
/**
12+
* Trait GenericOrderRequestFixture
13+
* @package MultiSafepay\Tests\Fixtures\OrderRequest
14+
*/
15+
trait OrderRequestWithoutPluginDetails
16+
{
17+
/**
18+
* @return OrderRequest
19+
*/
20+
public function createOrderRequestWithoutPluginDetails(): OrderRequest
21+
{
22+
$customer = $this->createCustomerDetailsFixture();
23+
return (new OrderRequest())
24+
->addOrderId((string)time())
25+
->addDescription($this->createDescriptionFixture())
26+
->addCustomer($customer)
27+
->addDelivery($customer);
28+
}
29+
}

tests/Unit/Api/Transactions/OrderRequestTest.php

+13-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use MultiSafepay\Tests\Fixtures\OrderRequest\Arguments\ShoppingCartFixture;
1515
use MultiSafepay\Tests\Fixtures\OrderRequest\DirectFixture as DirectOrderRequestFixture;
1616
use MultiSafepay\Tests\Fixtures\OrderRequest\GenericOrderRequestFixture;
17+
use MultiSafepay\Tests\Fixtures\OrderRequest\OrderRequestWithoutPluginDetails;
1718
use MultiSafepay\Tests\Fixtures\OrderRequest\RedirectFixture as RedirectOrderRequestFixture;
1819
use MultiSafepay\Tests\Fixtures\OrderRequest\TerminalFixture;
1920
use MultiSafepay\Tests\Fixtures\ValueObject\AddressFixture;
@@ -43,6 +44,7 @@ class OrderRequestTest extends TestCase
4344
use CountryFixture;
4445
use PhoneNumberFixture;
4546
use ShoppingCartFixture;
47+
use OrderRequestWithoutPluginDetails;
4648

4749
/**
4850
* Test if regular creation of an order works
@@ -142,7 +144,7 @@ public function testRequestOrderWithTerminalId()
142144
$this->assertArrayHasKey('terminal_id', $data['gateway_info']);
143145
$this->assertEquals('terminal-id', $data['gateway_info']['terminal_id']);
144146
}
145-
147+
146148
/**
147149
* Test if we can add a customer object, only setting up the reference, and get the Order Request
148150
*/
@@ -157,4 +159,14 @@ public function testCreateAndAddCustomerReference()
157159
$this->assertEquals('customer-reference', $data['customer']['reference']);
158160
$this->assertArrayNotHasKey('address1', $data['customer']);
159161
}
162+
163+
/**
164+
* Test if order request can be created without set pluginDetails
165+
*/
166+
public function testRequestOrderRequestWithoutPluginDetails()
167+
{
168+
$orderRequest = $this->createOrderRequestWithoutPluginDetails();
169+
$data = $orderRequest->getData();
170+
$this->assertArrayNotHasKey('plugin', $data);
171+
}
160172
}

0 commit comments

Comments
 (0)