Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractApplyVatIdTest.php
Go to the documentation of this file.
1 <?php
8 
11 use Magento\Mtf\Fixture\FixtureFactory;
12 use Magento\Mtf\TestCase\Injectable;
14 
18 abstract class AbstractApplyVatIdTest extends Injectable
19 {
25  protected $fixtureFactory;
26 
32  protected $configData;
33 
39  protected $customer;
40 
46  protected $vatGroupDataSets = [
47  'valid_domestic_group' => 'valid_vat_id_domestic',
48  'valid_intra_union_group' => 'valid_vat_id_intra_union',
49  'invalid_group' => 'invalid_vat_id',
50  'error_group' => 'validation_error_vat_id'
51  ];
52 
58  protected $vatGroups = [];
59 
66  public function __prepare(FixtureFactory $fixtureFactory)
67  {
68  $this->fixtureFactory = $fixtureFactory;
69 
70  foreach ($this->vatGroupDataSets as $group => $dataset) {
72  $groupFixture = $this->fixtureFactory->createByCode('customerGroup', ['dataset' => $dataset]);
73  $groupFixture->persist();
74  $this->vatGroups[$group] = $groupFixture;
75  }
76  }
77 
85  protected function prepareVatConfig(ConfigData $vatConfig, $customerGroup)
86  {
87  $groupConfig = [
88  'customer/create_account/viv_domestic_group' => [
89  'value' => $this->vatGroups['valid_domestic_group']->getCustomerGroupId()
90  ],
91  'customer/create_account/viv_intra_union_group' => [
92  'value' => $this->vatGroups['valid_intra_union_group']->getCustomerGroupId()
93  ],
94  'customer/create_account/viv_invalid_group' => [
95  'value' => $this->vatGroups['invalid_group']->getCustomerGroupId()
96  ],
97  'customer/create_account/viv_error_group' => [
98  'value' => $this->vatGroups['error_group']->getCustomerGroupId()
99  ]
100  ];
101  $vatConfig = $this->fixtureFactory->createByCode(
102  'configData',
103  ['data' => array_replace_recursive($vatConfig->getSection(), $groupConfig)]
104  );
105  $vatConfig->persist();
106 
107  $customerData = array_merge(
108  $this->customer->getData(),
109  ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupCode()]],
110  ['address' => ['addresses' => $this->customer->getDataFieldConfig('address')['source']->getAddresses()]]
111  );
112  $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]);
113  }
114 
120  public function tearDown()
121  {
122  $this->objectManager->create(
123  \Magento\Config\Test\TestStep\SetupConfigurationStep::class,
124  ['configData' => $this->configData, 'rollback' => true]
125  )->run();
126  }
127 }
$customerData
$group
Definition: sections.phtml:16
prepareVatConfig(ConfigData $vatConfig, $customerGroup)