BundleTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\BundleImportExport\Model;
  7. use Magento\CatalogImportExport\Model\AbstractProductExportImportTestCase;
  8. class BundleTest extends AbstractProductExportImportTestCase
  9. {
  10. /**
  11. * @return array
  12. */
  13. public function exportImportDataProvider(): array
  14. {
  15. return [
  16. // @todo uncomment after MAGETWO-49677 resolved
  17. /*
  18. 'bundle-product' => [
  19. [
  20. 'Magento/Bundle/_files/product.php'
  21. ],
  22. [
  23. 'bundle-product',
  24. ]
  25. ],
  26. */
  27. 'bundle-product-multi-options' => [
  28. [
  29. 'Magento/Bundle/_files/product_with_multiple_options.php'
  30. ],
  31. [
  32. 'bundle-product',
  33. ]
  34. ],
  35. // @todo uncomment after MAGETWO-49677 resolved
  36. /*
  37. 'bundle-product-tier-pricing' => [
  38. [
  39. 'Magento/Bundle/_files/product_with_tier_pricing.php'
  40. ],
  41. [
  42. 'bundle-product',
  43. ]
  44. ]
  45. */
  46. ];
  47. }
  48. /**
  49. * @inheritdoc
  50. */
  51. protected function assertEqualsSpecificAttributes(
  52. \Magento\Catalog\Model\Product $expectedProduct,
  53. \Magento\Catalog\Model\Product $actualProduct
  54. ): void {
  55. $expectedBundleProductOptions = $expectedProduct->getExtensionAttributes()->getBundleProductOptions();
  56. $actualBundleProductOptions = $actualProduct->getExtensionAttributes()->getBundleProductOptions();
  57. $this->assertEquals(count($expectedBundleProductOptions), count($actualBundleProductOptions));
  58. $expectedBundleProductOptionsToCompare = [];
  59. foreach ($expectedBundleProductOptions as $expectedBundleProductOption) {
  60. $expectedBundleProductOptionsToCompare[$expectedBundleProductOption->getTitle()]['type']
  61. = $expectedBundleProductOption->getType();
  62. foreach ($expectedBundleProductOption->getProductLinks() as $productLink) {
  63. $expectedBundleProductOptionsToCompare[$expectedBundleProductOption->getTitle()]['product_links'][]
  64. = $productLink->getSku();
  65. }
  66. }
  67. $actualBundleProductOptionsToCompare = [];
  68. foreach ($actualBundleProductOptions as $actualBundleProductOption) {
  69. $actualBundleProductOptionsToCompare[$actualBundleProductOption->getTitle()]['type']
  70. = $actualBundleProductOption->getType();
  71. foreach ($actualBundleProductOption->getProductLinks() as $productLink) {
  72. $actualBundleProductOptionsToCompare[$actualBundleProductOption->getTitle()]['product_links'][]
  73. = $productLink->getSku();
  74. }
  75. }
  76. $this->assertEquals(count($expectedBundleProductOptions), count($actualBundleProductOptions));
  77. foreach ($expectedBundleProductOptionsToCompare as $key => $expectedBundleProductOption) {
  78. $this->assertEquals(
  79. $expectedBundleProductOption['type'],
  80. $actualBundleProductOptionsToCompare[$key]['type']
  81. );
  82. $expectedProductLinks = $expectedBundleProductOption['product_links'];
  83. $actualProductLinks = $actualBundleProductOptionsToCompare[$key]['product_links'];
  84. sort($expectedProductLinks);
  85. sort($actualProductLinks);
  86. $this->assertEquals($expectedProductLinks, $actualProductLinks);
  87. }
  88. }
  89. }