Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SkuTest.php
Go to the documentation of this file.
1 <?php
7 
12 class SkuTest extends \PHPUnit\Framework\TestCase
13 {
18  {
20  \Magento\Catalog\Model\ProductRepository::class
21  );
22  $product = $repository->get('simple');
23  $product->setId(null);
24  $this->assertEquals('simple', $product->getSku());
25  $product->getResource()->getAttribute('sku')->getBackend()->beforeSave($product);
26  $this->assertEquals('simple-1', $product->getSku());
27  }
28 
34  {
35  $this->assertEquals('simple', $product->getSku());
36  $product->getResource()->getAttribute('sku')->getBackend()->beforeSave($product);
37  $this->assertEquals('simple', $product->getSku());
38  }
39 
45  public function testGenerateUniqueLongSku()
46  {
48  \Magento\Catalog\Model\ProductRepository::class
49  );
50  $product = $repository->get('simple');
51  $product->setSku('0123456789012345678901234567890123456789012345678901234567890123');
52 
55  \Magento\Catalog\Model\Product\Copier::class
56  );
57  $copier->copy($product);
58  $this->assertEquals('0123456789012345678901234567890123456789012345678901234567890123', $product->getSku());
59  $product->getResource()->getAttribute('sku')->getBackend()->beforeSave($product);
60  $this->assertEquals('01234567890123456789012345678901234567890123456789012345678901-1', $product->getSku());
61  }
62 
68  public function uniqueSkuDataProvider()
69  {
70  $product = $this->_getProduct();
71  return [[$product]];
72  }
73 
79  protected function _getProduct()
80  {
83  \Magento\Catalog\Model\Product::class
84  );
85  $product->setTypeId(
86  \Magento\Catalog\Model\Product\Type::TYPE_SIMPLE
87  )->setId(
88  1
89  )->setAttributeSetId(
90  4
91  )->setWebsiteIds(
92  [1]
93  )->setName(
94  'Simple Product'
95  )->setSku(
96  'simple'
97  )->setPrice(
98  10
99  )->setDescription(
100  'Description with <b>html tag</b>'
101  )->setVisibility(
103  )->setStatus(
104  \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
105  )->setCategoryIds(
106  [2]
107  )->setStockData(
108  ['use_config_manage_stock' => 1, 'qty' => 100, 'is_qty_decimal' => 0, 'is_in_stock' => 1]
109  );
110  return $product;
111  }
112 }