Skip to content

Commit

Permalink
PHPSDK-136: Remove PluginDetails as mandatory from the Order Request …
Browse files Browse the repository at this point in the history
…(#338)
  • Loading branch information
danielcivit authored Oct 13, 2023
1 parent bb6bc01 commit c41f012
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 5 deletions.
4 changes: 0 additions & 4 deletions src/Api/Transactions/OrderRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
29 changes: 29 additions & 0 deletions tests/Fixtures/OrderRequest/OrderRequestWithoutPluginDetails.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php declare(strict_types=1);
/**
* Copyright © MultiSafepay, Inc. All rights reserved.
* See DISCLAIMER.md for disclaimer details.
*/

namespace MultiSafepay\Tests\Fixtures\OrderRequest;

use MultiSafepay\Api\Transactions\OrderRequest;

/**
* Trait GenericOrderRequestFixture
* @package MultiSafepay\Tests\Fixtures\OrderRequest
*/
trait OrderRequestWithoutPluginDetails
{
/**
* @return OrderRequest
*/
public function createOrderRequestWithoutPluginDetails(): OrderRequest
{
$customer = $this->createCustomerDetailsFixture();
return (new OrderRequest())
->addOrderId((string)time())
->addDescription($this->createDescriptionFixture())
->addCustomer($customer)
->addDelivery($customer);
}
}
14 changes: 13 additions & 1 deletion tests/Unit/Api/Transactions/OrderRequestTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -43,6 +44,7 @@ class OrderRequestTest extends TestCase
use CountryFixture;
use PhoneNumberFixture;
use ShoppingCartFixture;
use OrderRequestWithoutPluginDetails;

/**
* Test if regular creation of an order works
Expand Down Expand Up @@ -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
*/
Expand All @@ -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);
}
}

0 comments on commit c41f012

Please sign in to comment.