Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TaxWithCrossBorderTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\CatalogRule\Test\Fixture\CatalogRule;
13 use Magento\Mtf\Fixture\FixtureFactory;
14 use Magento\Mtf\TestCase\Injectable;
15 
36 class TaxWithCrossBorderTest extends Injectable
37 {
38  /* tags */
39  const MVP = 'yes';
40  const STABLE = 'no';
41  /* end tags */
42 
48  protected $salesRule;
49 
55  protected $catalogRule;
56 
62  protected $fixtureFactory;
63 
70  public function __prepare(FixtureFactory $fixtureFactory)
71  {
72  $this->fixtureFactory = $fixtureFactory;
73 
74  return ['customers' => $this->createCustomers()];
75  }
76 
82  public function __inject()
83  {
84  // TODO: Move test set up to "__prepare" method after fix bug MAGETWO-29331
85  $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataset' => 'cross_border_tax_rule']);
86  $taxRule->persist();
87  }
88 
94  protected function createCustomers()
95  {
96  $customersData = ['johndoe_unique_TX', 'johndoe_unique'];
97  $customers = [];
98  foreach ($customersData as $customerData) {
99  $customer = $this->fixtureFactory->createByCode('customer', ['dataset' => $customerData]);
100  $customer->persist();
101  $customers[] = $customer;
102  }
103  return $customers;
104  }
105 
115  public function test(
116  CatalogProductSimple $product,
117  $configData,
118  SalesRule $salesRule = null,
119  CatalogRule $catalogRule = null
120  ) {
121  //Preconditions
122  if ($salesRule !== null) {
123  $salesRule->persist();
124  $this->salesRule = $salesRule;
125  }
126  if ($catalogRule !== null) {
127  $catalogRule->persist();
128  $this->catalogRule = $catalogRule;
129  }
130  $this->objectManager->create(
131  \Magento\Config\Test\TestStep\SetupConfigurationStep::class,
132  ['configData' => $configData]
133  )->run();
134  $product->persist();
135  }
136 
142  public function tearDown()
143  {
144  if (isset($this->salesRule)) {
145  $this->objectManager->create(\Magento\SalesRule\Test\TestStep\DeleteAllSalesRuleStep::class)->run();
146  $this->salesRule = null;
147  }
148  if (isset($this->catalogRule)) {
149  $this->objectManager->create(\Magento\CatalogRule\Test\TestStep\DeleteAllCatalogRulesStep::class)->run();
150  $this->catalogRule = null;
151  }
152 
153  // TODO: Move set default configuration to "tearDownAfterClass" method after fix bug MAGETWO-29331
154  $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class)->run();
155  $this->objectManager->create(
156  \Magento\Config\Test\TestStep\SetupConfigurationStep::class,
157  ['configData' => 'default_tax_configuration']
158  )->run();
159  }
160 }
$customerData
$customer
Definition: customers.php:11
$taxRule
Definition: tax_rule.php:35
test(CatalogProductSimple $product, $configData, SalesRule $salesRule=null, CatalogRule $catalogRule=null)