Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertAttributeSetOnProductForm.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Fixture\CatalogProductAttribute;
12 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
13 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
14 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew;
15 use Magento\Mtf\Constraint\AbstractConstraint;
16 use Magento\Mtf\Fixture\FixtureFactory;
17 
22 class AssertAttributeSetOnProductForm extends AbstractConstraint
23 {
38  public function processAssert(
39  FixtureFactory $fixtureFactory,
40  CatalogProductEdit $productEdit,
41  CatalogProductIndex $productGrid,
42  CatalogAttributeSet $attributeSet,
43  CatalogProductNew $newProductPage,
44  CatalogProductAttribute $productAttribute,
45  CatalogAttributeSet $attributeSetOriginal = null
46  ) {
47  $productGrid->open();
48  $productGrid->getGridPageActionBlock()->addProduct('simple');
49  $productBlockForm = $newProductPage->getProductForm();
50 
52  $productSimple = $fixtureFactory->createByCode(
53  'catalogProductSimple',
54  [
55  'dataset' => 'default',
56  'data' => [
57  'attribute_set_id' => ['attribute_set' => $attributeSet],
58  ],
59  ]
60  );
61  $productBlockForm->fill($productSimple);
62  $newProductPage->getFormPageActions()->save();
63 
64  $formData = $productEdit->getProductForm()->getData($productSimple);
65  $formAttributeSet = $formData['attribute_set_id'];
66  \PHPUnit\Framework\Assert::assertEquals(
67  $attributeSet->getAttributeSetName(),
68  $formAttributeSet,
69  'The attribute set wasn\'t found on product form.'
70  . "\nExpected: " . $attributeSet->getAttributeSetName()
71  . "\nActual: " . $formAttributeSet
72  );
73 
74  if ($attributeSetOriginal === null) {
75  $productEdit->getProductForm()->openSection('product-details');
76 
77  \PHPUnit\Framework\Assert::assertTrue(
78  $productEdit->getProductForm()->checkAttributeLabel($productAttribute),
79  "Product Attribute is absent on Product form."
80  );
81  }
82  }
83 
89  public function toString()
90  {
91  return 'Product Attribute and Attribute Set are present on the Product form.';
92  }
93 }