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
@@ -48,15 +48,41 @@
/**
* Test product migration from Drupal 7 to 8.
+ */
+ public function testProduct() {
+ $product = [
+ 'product_id' => '1',
+ 'uid' => '1',
+ 'title' => 'Go green with Drupal Commerce Reusable Tote Bag',
+ 'published' => TRUE,
+ 'store_ids' => ['1'],
+ 'variations' => [
+ 'variation one' => [
+ 'variation_id' => '1',
+ 'uid' => '0',
+ 'sku' => 'TOT1-GRN-OS',
+ 'price' => '16.000000',
+ '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);
+ }
+
+ /**
+ * Helper to test a product is linked to its variations.
*
- * @dataProvider productsProvider
+ * @param array $product
+ * Product and product variation data.
*/
- public function testProduct(array $product) {
+ public function productVariationTest(array $product) {
// Test variations.
- $variation_ids = [];
+ $productInstance = Product::load($product['product_id']);
foreach ($product['variations'] as $variation) {
- $variation_ids[] = $variation['variation_id'];
- $productInstance = Product::load($product['product_id']);
$found = FALSE;
foreach ($productInstance->variations as $variationInstance) {
if ($variation['variation_id'] == $variationInstance->target_id) {
@@ -66,37 +92,6 @@
$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']);
}
-
- // Test product itself.
- $this->assertProductEntity($product['product_id'], $product['uid'], $product['title'], $product['published'], $product['store_ids'], $variation_ids);
- }
-
- /**
- * Products data provider.
- */
- public function productsProvider() {
- return [
- 'go green' => [
- [
- 'product_id' => '15',
- 'uid' => '1',
- 'title' => 'Go green with Drupal Commerce Reusable Tote Bag',
- 'published' => TRUE,
- 'store_ids' => ['1'],
- 'variations' => [
- 'variation one' => [
- 'variation_id' => '1',
- 'uid' => '0',
- 'sku' => 'TOT1-GRN-OS',
- 'price' => '16.000000',
- 'currency' => 'USD',
- 'title' => 'Tote Bag 1',
- 'order_item_type' => 'default',
- ],
- ],
- ],
- ],
- ];
}
}
diff -u b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTypeTest.php b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTypeTest.php
--- b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTypeTest.php
+++ b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductTypeTest.php
@@ -39,55 +39,34 @@
* Test product type migration from Drupal 7 to 8.
- *
- * @dataProvider productTypes
*/
- public function testProductType($id, $label, $description) {
- $this->assertProductTypeEntity($id, $label, $description);
+ public function testProductType() {
+ $type = [
+ 'id' => 'bags_cases',
+ 'label' => 'Bags & Cases',
+ 'description' => 'A Bags & Cases is a content type which contain product variations.',
+ ];
+ $this->assertProductTypeEntity($type['id'], $type['label'], $type['description']);
+ $type = [
+ 'id' => 'tops',
+ 'label' => 'Tops',
+ 'description' => 'A Tops is a content type which contain product variations.',
+ ];
+ $this->assertProductTypeEntity($type['id'], $type['label'], $type['description']);
}
/**
* Test product type migration fields from Drupal 7 to 8.
- *
- * @dataProvider productTypeFields
*/
- public function testProductTypeFields($bundle, array $fields) {
+ public function testProductTypeFields() {
/** @var \Drupal\Core\Entity\EntityFieldManager $field_manager */
$field_manager = $this->container->get('entity_field.manager');
- $field_definitions = $field_manager->getFieldDefinitions('commerce_product', $bundle);
+ $bundle = 'tops';
+ $fields = ['body', 'variations', 'stores'];
+ $field_definitions = $field_manager->getFieldDefinitions('commerce_product', $bundle);
// Check that fields were added.
foreach ($fields as $field) {
$this->assertTrue(isset($field_definitions[$field]));
}
}
- /**
- * Data provider of product types.
- */
- public function productTypes() {
- return [
- 'bags' => [
- 'id' => 'bags_cases',
- 'label' => 'Bags & Cases',
- 'description' => 'A Bags & Cases is a content type which contain product variations.',
- ],
- 'tops' => [
- 'id' => 'tops',
- 'label' => 'Tops',
- 'description' => 'A Tops is a content type which contain product variations.',
- ],
- ];
- }
-
- /**
- * Data provider of product type fields.
- */
- public function productTypeFields() {
- return [
- 'tops' => [
- 'bundle' => 'tops',
- 'fields' => ['body', 'variations', 'stores'],
- ],
- ];
- }
-
}
diff -u b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductVariationTest.php b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductVariationTest.php
--- b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductVariationTest.php
+++ b/modules/commerce/tests/src/Kernel/Migrate/d7/ProductVariationTest.php
@@ -40,11 +40,86 @@
/**
* Test product variation migration from Drupal 7 Commerce to Drupal 8.
- *
- * @dataProvider variationsProvider
*/
- public function testProductVariation(array $variation) {
+ public function testProductVariation() {
+ $variation = [
+ 'id' => 1,
+ 'uid' => '0',
+ 'sku' => 'TOT1-GRN-OS',
+ 'price' => '16.000000',
+ 'currency' => 'USD',
+ 'product_id' => '1',
+ 'variation_title' => 'Tote Bag 1',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 11,
+ 'uid' => '0',
+ 'sku' => 'HAT1-GRY-OS',
+ 'price' => '16.000000',
+ 'currency' => 'USD',
+ 'product_id' => '11',
+ 'variation_title' => 'Hat 1',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 19,
+ 'uid' => '0',
+ 'sku' => 'SHO2-PRL-04',
+ 'price' => '40.000000',
+ 'currency' => 'USD',
+ 'product_id' => '19',
+ 'variation_title' => 'Shoe 2',
+ 'variation_bundle' => 'default',
+ ];
$this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 20,
+ 'uid' => '0',
+ 'sku' => 'SHO2-PRL-05',
+ 'price' => '40.000000',
+ 'currency' => 'USD',
+ 'product_id' => '20',
+ 'variation_title' => 'Shoe 2',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 28,
+ 'uid' => '0',
+ 'sku' => 'USB-BLU-08',
+ 'price' => '11.990000',
+ 'currency' => 'USD',
+ 'product_id' => '28',
+ 'variation_title' => 'Storage 1',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 29,
+ 'uid' => '0',
+ 'sku' => 'USB-BLU-16',
+ 'price' => '17.990000',
+ 'currency' => 'USD',
+ 'product_id' => '29',
+ 'variation_title' => 'Storage 1',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+ $variation = [
+ 'id' => 30,
+ 'uid' => '0',
+ 'sku' => 'USB-BLU-32',
+ 'price' => '29.990000',
+ 'currency' => 'USD',
+ 'product_id' => '30',
+ 'variation_title' => 'Storage 1',
+ 'variation_bundle' => 'default',
+ ];
+ $this->assertProductVariationEntity($variation['id'], $variation['uid'], $variation['sku'], $variation['price'], $variation['currency'], $variation['product_id'], $variation['variation_title'], $variation['variation_bundle']);
+
}
/**
@@ -58,94 +133,2 @@
- /**
- * Products data provider.
- */
- public function variationsProvider() {
- return [
- 'TOT1-GRN-OS' => [
- [
- 'id' => 1,
- 'uid' => '0',
- 'sku' => 'TOT1-GRN-OS',
- 'price' => '16.000000',
- 'currency' => 'USD',
- 'product_id' => '1',
- 'variation_title' => 'Tote Bag 1',
- 'variation_bundle' => 'default',
- ],
- ],
- 'HAT1-GRY-OS' => [
- [
- 'id' => 11,
- 'uid' => '0',
- 'sku' => 'HAT1-GRY-OS',
- 'price' => '16.000000',
- 'currency' => 'USD',
- 'product_id' => '11',
- 'variation_title' => 'Hat 1',
- 'variation_bundle' => 'default',
- ],
- ],
- 'SHO2-PRL-04' => [
- [
- 'id' => 19,
- 'uid' => '0',
- 'sku' => 'SHO2-PRL-04',
- 'price' => '40.000000',
- 'currency' => 'USD',
- 'product_id' => '19',
- 'variation_title' => 'Shoe 2',
- 'variation_bundle' => 'default',
- ],
- ],
- 'SHO2-PRL-05' => [
- [
- 'id' => 20,
- 'uid' => '0',
- 'sku' => 'SHO2-PRL-05',
- 'price' => '40.000000',
- 'currency' => 'USD',
- 'product_id' => '20',
- 'variation_title' => 'Shoe 2',
- 'variation_bundle' => 'default',
- ],
- ],
- 'USB-BLU-08' => [
- [
- 'id' => 28,
- 'uid' => '0',
- 'sku' => 'USB-BLU-08',
- 'price' => '11.990000',
- 'currency' => 'USD',
- 'product_id' => '28',
- 'variation_title' => 'Storage 1',
- 'variation_bundle' => 'default',
- ],
- ],
- 'USB-BLU-16' => [
- [
- 'id' => 29,
- 'uid' => '0',
- 'sku' => 'USB-BLU-16',
- 'price' => '17.990000',
- 'currency' => 'USD',
- 'product_id' => '29',
- 'variation_title' => 'Storage 1',
- 'variation_bundle' => 'default',
- ],
- ],
- 'USB-BLU-32' => [
- [
- 'id' => 30,
- 'uid' => '0',
- 'sku' => 'USB-BLU-32',
- 'price' => '29.990000',
- 'currency' => 'USD',
- 'product_id' => '30',
- 'variation_title' => 'Storage 1',
- 'variation_bundle' => 'default',
- ],
- ],
- ];
- }
-
}