Skip to content

Commit

Permalink
Merge pull request #2599 from Adyen/develop
Browse files Browse the repository at this point in the history
Release 9.5.1
  • Loading branch information
candemiralp authored May 1, 2024
2 parents d63a399 + 3dd3977 commit 651b0b7
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 76 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:

strategy:
matrix:
php-version: [8.1]
php-version: [8.2,8.3]

steps:
- uses: actions/checkout@v3
Expand Down
15 changes: 9 additions & 6 deletions Helper/PaymentResponseHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -275,17 +275,20 @@ public function handlePaymentsDetailsResponse(
case self::CANCELLED:
// Cancel order in case result is refused
if (null !== $order) {
// Set order to new so it can be cancelled
$order->setState(\Magento\Sales\Model\Order::STATE_NEW);
$order->save();
$order->setActionFlag(\Magento\Sales\Model\Order::ACTION_FLAG_CANCEL, true);
$this->dataHelper->cancelOrder($order);
// Check if the current state allows for changing to new for cancellation
if ($order->canCancel()) {
// Proceed to set cancellation action flag and cancel the order
$order->setActionFlag(\Magento\Sales\Model\Order::ACTION_FLAG_CANCEL, true);
$this->dataHelper->cancelOrder($order);
} else {
$this->adyenLogger->addAdyenResult('The order cannot be cancelled');
}
}
$result = false;
break;
default:
$this->adyenLogger->error(
sprintf("Payment details call failed for action, resultCode is %s Raw API responds: %s.
sprintf("Payment details call failed for action, resultCode is %s Raw API responds: %s.
Cancel or Hold the order on OFFER_CLOSED notification.",
$paymentsDetailsResponse['resultCode'],
json_encode($paymentsDetailsResponse)
Expand Down
2 changes: 2 additions & 0 deletions Helper/Webhook/WebhookHandlerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ class WebhookHandlerFactory
private ChargebackWebhookHandler $chargebackWebhookHandler;
private ChargebackReversedWebhookHandler $chargebackReversedWebhookHandler;
private NotificationOfChargebackWebhookHandler $notificationOfChargebackWebhookHandler;
private RequestForInformationWebhookHandler $requestForInformationWebhookHandler;
private SecondChargebackWebhookHandler $secondChargebackWebhookHandler;


public function __construct(
Expand Down
77 changes: 16 additions & 61 deletions Test/Unit/Model/Sales/OrderRepositoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,15 @@

use Adyen\Payment\Model\Sales\OrderRepository;
use Adyen\Payment\Test\Unit\AbstractAdyenTestCase;
use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface;
use Magento\Framework\Api\Filter;
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\Search\FilterGroup;
use Magento\Framework\Api\Search\FilterGroupBuilder;
use Magento\Framework\Api\SearchCriteria;
use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
use Magento\Payment\Api\Data\PaymentAdditionalInfoInterfaceFactory;
use Magento\Sales\Api\Data\OrderExtensionFactory;
use Magento\Sales\Api\Data\OrderInterface;
use Magento\Sales\Api\Data\OrderSearchResultInterface;
use Magento\Sales\Api\Data\OrderSearchResultInterfaceFactory as SearchResultFactory;
use Magento\Sales\Model\ResourceModel\Metadata;
use Magento\Tax\Api\OrderTaxManagementInterface;
use ReflectionClass;

class OrderRepositoryTest extends AbstractAdyenTestCase
{
Expand Down Expand Up @@ -61,15 +54,7 @@ public function testGetOrderByQuoteId()
public function buildOrderRepositoryClass(
$searchCriteriaBuilderMock = null,
$filterBuilderMock = null,
$filterGroupBuilderMock = null,
$metadataMock = null,
$searchResultFactoryMock = null,
$collectionProcessorMock = null,
$orderExtensionFactoryMock = null,
$orderTaxManagementMock = null,
$paymentAdditionalInfoFactoryMock = null,
$serializerMock = null,
$extensionAttributesJoinProcessorMock = null
$filterGroupBuilderMock = null
): OrderRepository {
if (is_null($searchCriteriaBuilderMock)) {
$searchCriteriaBuilderMock = $this->createMock(SearchCriteriaBuilder::class);
Expand All @@ -83,54 +68,24 @@ public function buildOrderRepositoryClass(
$filterGroupBuilderMock = $this->createMock(FilterGroupBuilder::class);
}

if (is_null($metadataMock)) {
$metadataMock = $this->createMock(Metadata::class);
}

if (is_null($searchResultFactoryMock)) {
$searchResultFactoryMock = $this->createGeneratedMock(SearchResultFactory::class);
}

if (is_null($collectionProcessorMock)) {
$collectionProcessorMock = $this->createMock(CollectionProcessorInterface::class);
}

if (is_null($orderExtensionFactoryMock)) {
$orderExtensionFactoryMock = $this->createGeneratedMock(OrderExtensionFactory::class);
}

if (is_null($orderTaxManagementMock)) {
$orderTaxManagementMock = $this->createMock(OrderTaxManagementInterface::class);
}
$orderRepositoryPartialMock = $this->getMockBuilder(OrderRepository::class)
->setMethods(['getList'])
->disableOriginalConstructor()
->getMock();

if (is_null($paymentAdditionalInfoFactoryMock)) {
$paymentAdditionalInfoFactoryMock = $this->createGeneratedMock(PaymentAdditionalInfoInterfaceFactory::class);
}
$reflection = new ReflectionClass(OrderRepository::class);

if (is_null($serializerMock)) {
$serializerMock = $this->createMock(JsonSerializer::class);
}
$searchCriteriaBuilderProperty = $reflection->getProperty('searchCriteriaBuilder');
$searchCriteriaBuilderProperty->setAccessible(true);
$searchCriteriaBuilderProperty->setValue($orderRepositoryPartialMock, $searchCriteriaBuilderMock);

if (is_null($extensionAttributesJoinProcessorMock)) {
$extensionAttributesJoinProcessorMock = $this->createMock(JoinProcessorInterface::class);
}
$filterBuilderProperty = $reflection->getProperty('filterBuilder');
$filterBuilderProperty->setAccessible(true);
$filterBuilderProperty->setValue($orderRepositoryPartialMock, $filterBuilderMock);

$orderRepositoryPartialMock = $this->getMockBuilder(OrderRepository::class)
->setMethods(['getList'])
->setConstructorArgs([
$searchCriteriaBuilderMock,
$filterBuilderMock,
$filterGroupBuilderMock,
$metadataMock,
$searchResultFactoryMock,
$collectionProcessorMock,
$orderExtensionFactoryMock,
$orderTaxManagementMock,
$paymentAdditionalInfoFactoryMock,
$serializerMock,
$extensionAttributesJoinProcessorMock
])
->getMock();
$filterGroupBuilderProperty = $reflection->getProperty('filterGroupBuilder');
$filterGroupBuilderProperty->setAccessible(true);
$filterGroupBuilderProperty->setValue($orderRepositoryPartialMock, $filterGroupBuilderMock);

$orderSearchResultMock = $this->createConfiguredMock(OrderSearchResultInterface::class, [
'getItems' => [$this->createMock(OrderInterface::class)]
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "adyen/module-payment",
"description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.",
"type": "magento2-module",
"version": "9.5.0",
"version": "9.5.1",
"license": "MIT",
"repositories": [
{
Expand Down
7 changes: 1 addition & 6 deletions view/frontend/templates/checkout/multishipping/billing.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -106,20 +106,15 @@
data-bind="
value: getCode(),
checked: isChecked,
click: selectPaymentMethod,
visible: isRadioButtonVisible()"
<?php if ($checked): ?>
checked="checked"
<?php endif; ?>
class="radio"/>
<?php else: ?>
<input type="radio"
id="p_method_<?= $block->escapeHtml($code); ?>"
value="<?= $block->escapeHtml($code); ?>"
name="payment[method]"
data-bind="
value: getCode(),
afterRender: selectPaymentMethod"
value: getCode()"
checked="checked"
class="radio solo method" />
<?php endif; ?>
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
<div id="cardContainer"></div>
<div class="field number cardContainerField">
<div class="checkout-component-dock" afterRender="selectPaymentMethod()" data-bind="attr: { id: 'cardContainer'}">
</div>
</div>

0 comments on commit 651b0b7

Please sign in to comment.