diff -u b/src/Plugin/migrate/process/ubercart/d6/UbercartLineItem.php b/src/Plugin/migrate/process/ubercart/d6/UbercartLineItem.php --- b/src/Plugin/migrate/process/ubercart/d6/UbercartLineItem.php +++ b/src/Plugin/migrate/process/ubercart/d6/UbercartLineItem.php @@ -9,6 +9,8 @@ use Drupal\migrate\Row; /** + * Transforms an array of data into an Commerce Adjustment. + * * @MigrateProcessPlugin( * id = "d6_ubercart_line_item" * ) @@ -24,9 +26,10 @@ if ($adjustment) { - $amount = intval($adjustment['amount']['number'] * 100); + $amount = $adjustment['amount']['number']; $adjustment['type'] = $row->getSourceProperty('commerce_shipping') ? 'shipping' : 'custom'; $adjustment['amount'] = new Price($amount, $adjustment['amount']['currency_code']); $adjustment = new Adjustment($adjustment); } return $adjustment; } + } diff -u b/tests/src/Kernel/d6/Ubercart/OrderTest.php b/tests/src/Kernel/d6/Ubercart/OrderTest.php --- b/tests/src/Kernel/d6/Ubercart/OrderTest.php +++ b/tests/src/Kernel/d6/Ubercart/OrderTest.php @@ -7,7 +7,7 @@ use Drupal\commerce_price\Price; /** - * Tests billing profile migration. + * Tests order migration. * * @group commerce_migrate */ @@ -67,10 +67,35 @@ $adjustments[] = new Adjustment([ 'type' => 'custom', 'label' => 'Shipping', - 'amount' => new Price('299', 'NZD'), - 'sourceId' => null, + 'amount' => new Price('2.99', 'NZD'), + 'sourceId' => NULL, 'included' => FALSE, ]); + $this->assertCount(1, $order->getAdjustments()); + $this->assertEquals($adjustments, $order->getAdjustments()); + + $order = Order::load(2); + $adjustments = []; + $adjustments[] = new Adjustment([ + 'type' => 'custom', + 'label' => 'Shipping', + 'amount' => new Price('1000.00', 'NZD'), + 'sourceId' => NULL, + 'included' => FALSE, + ]); + $this->assertCount(1, $order->getAdjustments()); + $this->assertEquals($adjustments, $order->getAdjustments()); + + $order = Order::load(3); + $adjustments = []; + $adjustments[] = new Adjustment([ + 'type' => 'custom', + 'label' => 'Shipping', + 'amount' => new Price('5.00', 'NZD'), + 'sourceId' => NULL, + 'included' => FALSE, + ]); + $this->assertCount(1, $order->getAdjustments()); $this->assertEquals($adjustments, $order->getAdjustments()); } only in patch2: unchanged: --- /dev/null +++ b/tests/src/Kernel/d6/Ubercart/OrderTestShipping.php @@ -0,0 +1,104 @@ +installEntitySchema('view'); + $this->installEntitySchema('profile'); + $this->installEntitySchema('commerce_product_variation'); + $this->installEntitySchema('commerce_order'); + $this->installEntitySchema('commerce_order_item'); + $this->installConfig(['commerce_order']); + $this->createDefaultStore(); + $this->startCollectingMessages(); + $this->executeMigrations([ + 'd6_filter_format', + 'd6_user_role', + 'd6_user', + 'ubercart_currency', + 'd6_ubercart_billing_profile', + 'd6_ubercart_order', + ]); + + } + + /** + * Test order migration from Drupal 6 to 8. + */ + public function testOrder() { + /** @var \Drupal\commerce_order\Entity\OrderInterface $order */ + $order = Order::load(1); + $this->assertNotNull($order); + $this->assertEquals(1492868907, $order->getCreatedTime()); + $this->assertEquals(1493078815, $order->getChangedTime()); + $this->assertEquals('fordprefect@example.com', $order->getEmail()); + $this->assertEquals('validation', $order->getState()->getLabel()); + $this->assertNotNull($order->getBillingProfile()); + // @todo This regressed with beta1 fixes? + // $data = $order->getData(); + // $this->assertFalse(isset($data['cc_data'])); + + // Included adjustments do not affect the order total. + $adjustments[] = new Adjustment([ + 'type' => 'shipping', + 'label' => 'Shipping', + 'amount' => new Price('2.99', 'NZD'), + 'sourceId' => NULL, + 'included' => FALSE, + ]); + $this->assertCount(1, $order->getAdjustments()); + $this->assertEquals($adjustments, $order->getAdjustments()); + + $order = Order::load(2); + $adjustments = []; + $adjustments[] = new Adjustment([ + 'type' => 'shipping', + 'label' => 'Shipping', + 'amount' => new Price('1000.00', 'NZD'), + 'sourceId' => NULL, + 'included' => FALSE, + ]); + $this->assertCount(1, $order->getAdjustments()); + $this->assertEquals($adjustments, $order->getAdjustments()); + + $order = Order::load(3); + $adjustments = []; + $adjustments[] = new Adjustment([ + 'type' => 'shipping', + 'label' => 'Shipping', + 'amount' => new Price('5.00', 'NZD'), + 'sourceId' => NULL, + 'included' => FALSE, + ]); + $this->assertCount(1, $order->getAdjustments()); + $this->assertEquals($adjustments, $order->getAdjustments()); + } + +}