diff -u b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTest.php b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTest.php --- b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTest.php +++ b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTest.php @@ -2,7 +2,6 @@ namespace Drupal\Tests\commerce_migrate_commerce\Kernel\Migrate\d7; -use Drupal\commerce_product\Entity\Product; use Drupal\Tests\commerce_migrate\Kernel\CommerceMigrateTestTrait; /** @@ -57,7 +56,7 @@ 'published' => TRUE, 'store_ids' => ['1'], 'variations' => [ - 'variation one' => [ + [ 'variation_id' => '1', 'uid' => '0', 'sku' => 'TOT1-GRN-OS', @@ -65,12 +64,10 @@ 'currency' => 'USD', 'title' => 'Tote Bag 1', 'order_item_type' => 'default', - ], + ] ], ]; - $variation_ids = ['1']; - $this->assertProductEntity($product['product_id'], $product['uid'], $product['title'], $product['published'], $product['store_ids'], $variation_ids); - $this->productVariationTest($product); + $this->productTest($product); // Tests a product with multiple variations. $product = [ @@ -109,31 +106,7 @@ ], ], ]; - $variation_ids = ['28', '29', '30']; - $this->assertProductEntity($product['product_id'], $product['uid'], $product['title'], $product['published'], $product['store_ids'], $variation_ids); - $this->productVariationTest($product); - } - - /** - * Helper to test a product is linked to its variations. - * - * @param array $product - * Product and product variation data. - */ - public function productVariationTest(array $product) { - // Test variations. - $productInstance = Product::load($product['product_id']); - foreach ($product['variations'] as $variation) { - $found = FALSE; - foreach ($productInstance->variations as $variationInstance) { - if ($variation['variation_id'] == $variationInstance->target_id) { - $found = TRUE; - } - } - $this->assertTrue($found, "No variation exists for variation_id: {$variation['variation_id']}"); - $this->assertProductVariationEntity($variation['variation_id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $product['product_id'], $variation['title'], $variation['order_item_type']); - } - + $this->productTest($product); } } diff -u b/tests/src/Kernel/CommerceMigrateTestTrait.php b/tests/src/Kernel/CommerceMigrateTestTrait.php --- b/tests/src/Kernel/CommerceMigrateTestTrait.php +++ b/tests/src/Kernel/CommerceMigrateTestTrait.php @@ -390,2 +390,36 @@ + /** + * @param array $product + * Array of product and product variation data. + */ + public function productTest(array $product) { + $variation_ids = []; + foreach ($product['variations'] as $variation) { + $variation_ids[] = $variation['variation_id']; + } + $this->assertProductEntity($product['product_id'], $product['uid'], $product['title'], $product['published'], $product['store_ids'], $variation_ids); + $this->productVariationTest($product); + } + + /** + * Helper to test a product is linked to its variations. + * + * @param array $product + * Product and product variation data. + */ + public function productVariationTest(array $product) { + // Test variations. + $productInstance = Product::load($product['product_id']); + foreach ($product['variations'] as $variation) { + $found = FALSE; + foreach ($productInstance->variations as $variationInstance) { + if ($variation['variation_id'] == $variationInstance->target_id) { + $found = TRUE; + } + } + $this->assertTrue($found, "No variation exists for variation_id: {$variation['variation_id']}"); + $this->assertProductVariationEntity($variation['variation_id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $product['product_id'], $variation['title'], $variation['order_item_type']); + } + } + }