commerce-8.x-2.8/modules/order/tests/modules/commerce_order_test/src/TestAdjustmentProcessor.php
modules/order/tests/modules/commerce_order_test/src/TestAdjustmentProcessor.php
<?php
namespace Drupal\commerce_order_test;
use Drupal\commerce_order\Adjustment;
use Drupal\commerce_order\Entity\OrderInterface;
use Drupal\commerce_order\OrderProcessorInterface;
use Drupal\commerce_price\Price;
/**
* Adds order and order item adjustments for testing purposes.
*/
class TestAdjustmentProcessor implements OrderProcessorInterface {
/**
* {@inheritdoc}
*/
public function process(OrderInterface $order) {
foreach ($order->getItems() as $order_item) {
$test_adjustments = $order_item->getData('test_adjustments', []);
foreach ($test_adjustments as $test_adjustment) {
$order_item->addAdjustment($test_adjustment);
}
// Add adjustment for PriceCalculatorTest.
if ($order->getEmail() == 'user2@example.com') {
$order_item->addAdjustment(new Adjustment([
'type' => 'test_adjustment_type',
'label' => '$2.00 fee',
'amount' => new Price('2.00', 'USD'),
]));
}
}
$test_adjustments = $order->getData('test_adjustments', []);
foreach ($test_adjustments as $test_adjustment) {
$order->addAdjustment($test_adjustment);
}
}
}
