public function CommerceMigrateTestTrait::assertOrder in Commerce Migrate 3.1.x
Same name and namespace in other branches
- 8.2 tests/src/Kernel/CommerceMigrateTestTrait.php \Drupal\Tests\commerce_migrate\Kernel\CommerceMigrateTestTrait::assertOrder()
- 3.0.x tests/src/Kernel/CommerceMigrateTestTrait.php \Drupal\Tests\commerce_migrate\Kernel\CommerceMigrateTestTrait::assertOrder()
Asserts an order entity.
Parameters
array $order: An array of order information.
- id: The order id.
- type: The order type.
- number: The order number.
- store_id: The store id.
- created_time: The time the order was created.
- changed_time: The time the order was changed.
- email: The email address for this order.
- label: The label for this order.
- ip_address: The ip address used to create this order.
- customer_id: The customer id.
- placed_time: The time the order was placed.
- total_price_currency: Currency code for the total price.
- total_price: The amount of the total price.
- adjustments: An array of adjustments.
- label_value: The state label
- billing_profile: An array of billing profile target id and target
revision id.
- data: The data blob for this order.
- order_items_ids: An array of order item IDs for this order.
2 calls to CommerceMigrateTestTrait::assertOrder()
- CommerceMigrateTestTrait::assertUbercartOrder in tests/
src/ Kernel/ CommerceMigrateTestTrait.php - Asserts an order entity.
- OrderTest::testOrder in modules/
commerce/ tests/ src/ Kernel/ Migrate/ commerce1/ OrderTest.php - Test line item migration from Drupal 7 to 8.
File
- tests/
src/ Kernel/ CommerceMigrateTestTrait.php, line 227
Class
- CommerceMigrateTestTrait
- Helper function to test migrations.
Namespace
Drupal\Tests\commerce_migrate\KernelCode
public function assertOrder(array $order) {
$order_instance = Order::load($order['id']);
$this
->assertInstanceOf(Order::class, $order_instance);
$this
->assertSame($order['type'], $order_instance
->bundle());
$this
->assertSame($order['number'], $order_instance
->getOrderNumber());
$this
->assertSame($order['store_id'], $order_instance
->getStoreId());
$this
->assertSame($order['created_time'], $order_instance
->getCreatedTime());
$this
->assertSame($order['changed_time'], $order_instance
->getChangedTime());
$this
->assertSame($order['completed_time'], $order_instance
->getCompletedTime());
$this
->assertSame($order['email'], $order_instance
->getEmail());
$this
->assertInstanceOf(Profile::class, $order_instance
->getBillingProfile());
$this
->assertSame($order['customer_id'], $order_instance
->getCustomerId());
$this
->assertSame($order['ip_address'], $order_instance
->getIpAddress());
$this
->assertSame($order['placed_time'], $order_instance
->getPlacedTime());
// Order total price may be null if the source order was incomplete.
$actual_total_price = $order_instance
->getTotalPrice();
if ($actual_total_price != NULL) {
$this
->assertEquals($order['total_price_currency'], $order_instance
->getTotalPrice()
->getCurrencyCode());
$formatted_number = $this
->formatNumber($order['total_price'], $order_instance
->getTotalPrice()
->getNumber());
$this
->assertSame($formatted_number['expected'], $formatted_number['actual']);
}
$this
->assertAdjustments($order['adjustments'], $order_instance
->getAdjustments());
$this
->assertSame($order['label_value'], $order_instance
->getState()->value);
$data = $order_instance
->get('data')
->getValue();
$this
->assertSame($order['data'], $data);
$state_label = $order_instance
->getState()
->getLabel();
$label = NULL;
if (is_string($state_label)) {
$label = $state_label;
}
elseif ($state_label instanceof TranslatableMarkup) {
$arguments = $state_label
->getArguments();
$label = isset($arguments['@label']) ? $arguments['@label'] : $state_label
->render();
}
$this
->assertSame($order['label_rendered'], $label);
// Allow orders to be tested without a cart.
if (isset($order['cart'])) {
$this
->assertSame($order['cart'], $order_instance
->get('cart')->value);
}
// Test billing profile.
$billing_profile = [
'target_id' => $order['billing_profile'][0],
'target_revision_id' => $order['billing_profile'][1],
];
$this
->assertSame([
$billing_profile,
], $order_instance
->get('billing_profile')
->getValue());
// Test the order items as linked.
$actual_order_items = $order_instance
->get('order_items')
->getValue();
$actual_order_item_ids = [];
foreach ($actual_order_items as $actual_order_item) {
$actual_order_item_ids[] = $actual_order_item['target_id'];
}
sort($actual_order_item_ids);
sort($order['order_items_ids']);
$this
->assertSame($order['order_items_ids'], $actual_order_item_ids);
}