Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RssFeedTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
16 use PHPUnit\Framework\TestCase;
17 
21 class RssFeedTest extends TestCase
22 {
26  private $dataProvider;
27 
31  private $storeManager;
32 
36  private $storeCodeBefore;
37 
41  private $sourceItemConfigurationsSave;
42 
46  private $getSourceItemConfiguration;
47 
51  protected function setUp()
52  {
53  parent::setUp();
54 
55  $this->dataProvider = Bootstrap::getObjectManager()->create(NotifyStock::class);
56  $this->storeManager = Bootstrap::getObjectManager()->create(StoreManagerInterface::class);
57  $this->sourceItemConfigurationsSave = Bootstrap::getObjectManager()
58  ->create(SourceItemConfigurationsSaveInterface::class);
59  $this->getSourceItemConfiguration = Bootstrap::getObjectManager()
60  ->create(GetSourceItemConfigurationInterface::class);
61  $this->storeCodeBefore = $this->storeManager->getStore()->getCode();
62  $this->storeManager->setCurrentStore(Store::ADMIN_CODE);
63  }
64 
83  public function testGetRssData(
84  string $sku,
85  string $sourceCode,
86  $notifyQty,
87  int $expectedCount
88  ) {
89  $sourceItemConfiguration = $this->getSourceItemConfiguration->execute($sourceCode, $sku);
90  $sourceItemConfiguration->setNotifyStockQty($notifyQty);
91 
92  $this->sourceItemConfigurationsSave->execute([$sourceItemConfiguration]);
93 
94  $data = $this->dataProvider->getRssData();
95 
96  $this->assertEquals($expectedCount, count($data['entries']));
97  }
98 
121  string $sku,
122  string $sourceCode,
123  $notifyQty,
124  int $expectedCount
125  ) {
126  $sourceItemConfiguration = $this->getSourceItemConfiguration->execute($sourceCode, $sku);
127  $sourceItemConfiguration->setNotifyStockQty($notifyQty);
128 
129  $this->sourceItemConfigurationsSave->execute([$sourceItemConfiguration]);
130 
131  $data = $this->dataProvider->getRssData();
132 
133  $this->assertEquals($expectedCount, count($data['entries']));
134  }
135 
139  public function getRssDataDataProvider(): array
140  {
141  return [
142  ['SKU-1', 'eu-disabled', 12, 3],
143  ['SKU-1', 'eu-disabled', 6, 2],
144  ['SKU-1', 'eu-disabled', null, 2],
145  ['SKU-1', 'eu-1', 6, 3],
146  ['SKU-1', 'eu-1', 5.4, 2],
147  ['SKU-1', 'eu-1', null, 3],
148  ['SKU-2', 'us-1', 8, 4],
149  ['SKU-2', 'us-1', 1, 3],
150  ['SKU-2', 'us-1', null, 4],
151  ['SKU-3', 'eu-2', 10, 3],
152  ['SKU-3', 'eu-2', 5, 2],
153  ['SKU-3', 'eu-2', null, 3],
154  ];
155  }
156 
160  protected function tearDown()
161  {
162  parent::tearDown();
163 
164  if (null !== $this->storeCodeBefore) {
165  $this->storeManager->setCurrentStore($this->storeCodeBefore);
166  }
167  }
168 }
testGetRssData(string $sku, string $sourceCode, $notifyQty, int $expectedCount)
Definition: RssFeedTest.php:83
$sourceCode
Definition: inventory.phtml:11
testGetRssDataDisabledManageStock(string $sku, string $sourceCode, $notifyQty, int $expectedCount)