Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
StockDataFilterTest.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class StockDataFilterTest extends \PHPUnit\Framework\TestCase
14 {
18  protected $storeMock;
19 
23  protected $scopeConfigMock;
24 
28  protected $stockDataFilter;
29 
32 
33  protected function setUp()
34  {
35  $this->scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
36 
37  $this->scopeConfigMock->expects($this->any())->method('getValue')->will($this->returnValue(1));
38 
39  $this->stockConfiguration = $this->createPartialMock(
40  \Magento\CatalogInventory\Model\Configuration::class,
41  ['getManageStock']
42  );
43 
44  $this->stockDataFilter = new StockDataFilter($this->scopeConfigMock, $this->stockConfiguration);
45  }
46 
54  public function testFilter(array $inputStockData, array $outputStockData)
55  {
56  if (isset($inputStockData['use_config_manage_stock']) && $inputStockData['use_config_manage_stock'] === 1) {
57  $this->stockConfiguration->expects($this->once())
58  ->method('getManageStock')
59  ->will($this->returnValue($outputStockData['manage_stock']));
60  }
61 
62  $this->assertEquals($outputStockData, $this->stockDataFilter->filter($inputStockData));
63  }
64 
70  public function filterDataProvider()
71  {
72  return [
73  'case1' => [
74  'inputStockData' => [],
75  'outputStockData' => ['use_config_manage_stock' => 0, 'is_decimal_divided' => 0],
76  ],
77  'case2' => [
78  'inputStockData' => ['use_config_manage_stock' => 1],
79  'outputStockData' => [
80  'use_config_manage_stock' => 1,
81  'manage_stock' => 1,
82  'is_decimal_divided' => 0,
83  ],
84  ],
85  'case3' => [
86  'inputStockData' => [
87  'qty' => StockDataFilter::MAX_QTY_VALUE + 1,
88  ],
89  'outputStockData' => [
91  'is_decimal_divided' => 0,
92  'use_config_manage_stock' => 0,
93  ],
94  ],
95  'case4' => [
96  'inputStockData' => ['min_qty' => -1],
97  'outputStockData' => ['min_qty' => 0, 'is_decimal_divided' => 0, 'use_config_manage_stock' => 0],
98  ],
99  'case5' => [
100  'inputStockData' => ['is_qty_decimal' => 0],
101  'outputStockData' => [
102  'is_qty_decimal' => 0,
103  'is_decimal_divided' => 0,
104  'use_config_manage_stock' => 0,
105  ],
106  ]
107  ];
108  }
109 }