/** * @dataProvider mergeDataProvider */ public function testMergeDataObjectWithArray($firstDataSet, $secondDataSet, $mergedData) { $taxRateSearchResults = $this->taxRateSearchResultsBuilder->populateWithArray($mergedData)->create(); $taxRateSearchResults1 = $this->taxRateSearchResultsBuilder->populateWithArray($firstDataSet)->create(); $taxRateSearchResultsMerged = $this->taxRateSearchResultsBuilder->mergeDataObjectWithArray($taxRateSearchResults1, $secondDataSet); $this->assertEquals($taxRateSearchResults->__toArray(), $taxRateSearchResultsMerged->__toArray()); }
/** * {@inheritdoc} */ public function searchTaxRates(SearchCriteria $searchCriteria) { /** @var \Magento\Tax\Model\Resource\Calculation\Rate\Collection $collection */ $collection = $this->rateFactory->create()->getCollection(); $collection->joinRegionTable(); //Add filters from root filter group to the collection foreach ($searchCriteria->getFilterGroups() as $group) { $this->addFilterGroupToCollection($group, $collection); } $sortOrders = $searchCriteria->getSortOrders(); /** @var SortOrder $sortOrder */ if ($sortOrders) { foreach ($sortOrders as $sortOrder) { $collection->addOrder($this->translateField($sortOrder->getField()), $sortOrder->getDirection() == SearchCriteria::SORT_ASC ? 'ASC' : 'DESC'); } } $collection->setCurPage($searchCriteria->getCurrentPage()); $collection->setPageSize($searchCriteria->getPageSize()); $taxRate = []; /** @var \Magento\Tax\Model\Calculation\Rate $taxRateModel */ foreach ($collection as $taxRateModel) { $taxRate[] = $this->converter->createTaxRateDataObjectFromModel($taxRateModel); } return $this->taxRateSearchResultsBuilder->setItems($taxRate)->setTotalCount($collection->getSize())->setSearchCriteria($searchCriteria)->create(); }