예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function loadData($printQuery = false, $logQuery = false)
 {
     if (!$this->isLoaded()) {
         $searchCriteria = $this->getSearchCriteria();
         $searchResults = $this->ruleService->searchTaxRules($searchCriteria);
         $this->_totalRecords = $searchResults->getTotalCount();
         foreach ($searchResults->getItems() as $taxRule) {
             $this->_addItem($this->createTaxRuleCollectionItem($taxRule));
         }
         $this->_setIsLoaded();
     }
     return $this;
 }
예제 #2
0
 public function testSearchTaxRulesSingleResult()
 {
     /** @var \PHPUnit_Framework_MockObject_MockObject |
      * \Magento\Tax\Model\Resource\Calculation\Rule\Collection $mockCollection */
     $mockCollection = $this->getMockBuilder('\\Magento\\Tax\\Model\\Resource\\Calculation\\Rule\\Collection')->disableOriginalConstructor()->setMethods(['__wakeup', 'getItems', 'getSize', 'addFieldToFilter', '_beforeLoad', 'getIterator'])->getMock();
     /** @var \Magento\Tax\Service\V1\Data\TaxRuleBuilder $taxRuleBuilder */
     $taxRuleBuilder = $this->objectManager->getObject('Magento\\Tax\\Service\\V1\\Data\\TaxRuleBuilder');
     /** @var \Magento\Tax\Service\V1\Data\TaxRule $taxRule */
     $taxRule = $taxRuleBuilder->create();
     $taxRuleModel = $this->getMockBuilder('Magento\\Tax\\Model\\Calculation\\Rule')->disableOriginalConstructor()->getMock();
     $mockCollection->expects($this->once())->method('getIterator')->will($this->returnValue(new \ArrayIterator([$taxRuleModel])));
     $mockCollection->expects($this->once())->method('getSize')->will($this->returnValue(1));
     $filterBuilder = $this->objectManager->getObject('\\Magento\\Framework\\Service\\V1\\Data\\FilterBuilder');
     $filter = $filterBuilder->setField('code')->setValue('code')->setConditionType('eq')->create();
     $filterGroupBuilder = $this->objectManager->getObject('Magento\\Framework\\Service\\V1\\Data\\Search\\FilterGroupBuilder');
     /** @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $searchCriteriaBuilder */
     $searchCriteriaBuilder = $this->objectManager->getObject('Magento\\Framework\\Service\\V1\\Data\\SearchCriteriaBuilder', ['filterGroupBuilder' => $filterGroupBuilder]);
     $searchCriteria = $searchCriteriaBuilder->addFilter([$filter])->addSortOrder('id', \Magento\Framework\Service\V1\Data\SearchCriteria::SORT_ASC)->create();
     /** @var \Magento\Tax\Service\V1\Data\TaxRuleSearchResultsBuilder $searchResultsBuilder */
     $searchResultsBuilder = $this->objectManager->getObject('\\Magento\\Tax\\Service\\V1\\Data\\TaxRuleSearchResultsBuilder');
     $expectedResults = $searchResultsBuilder->setSearchCriteria($searchCriteria)->setItems([$taxRule])->setTotalCount(1)->create();
     $this->ruleModelMock->expects($this->once())->method('getCollection')->will($this->returnValue($mockCollection));
     $this->converterMock->expects($this->once())->method('createTaxRuleDataObjectFromModel')->with($taxRuleModel)->will($this->returnValue($taxRule));
     $actualResults = $this->taxRuleService->searchTaxRules($searchCriteria);
     $this->assertNotNull($actualResults);
     $this->assertSame($searchCriteria, $actualResults->getSearchCriteria());
     $this->assertSame($expectedResults->getSearchCriteria(), $actualResults->getSearchCriteria());
     $this->assertSame($expectedResults->getTotalCount(), $actualResults->getTotalCount());
     $this->assertEquals($expectedResults->getItems(), $actualResults->getItems());
     $this->assertSame($taxRule, $actualResults->getItems()[0]);
 }
예제 #3
0
 /**
  *
  * @param Filter[] $filters
  * @param Filter[] $filterGroup
  * @param string[] $expectedResultCodes The codes of the tax rules that are expected to be found
  *
  * @magentoDbIsolation enabled
  * @dataProvider searchTaxRulesDataProvider
  */
 public function testSearchTaxRules($filters, $filterGroup, $expectedRuleCodes)
 {
     $this->setUpDefaultRules();
     /** @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $searchBuilder */
     $searchBuilder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\SearchCriteriaBuilder');
     foreach ($filters as $filter) {
         $searchBuilder->addFilter([$filter]);
     }
     if (!is_null($filterGroup)) {
         $searchBuilder->addFilter($filterGroup);
     }
     $searchCriteria = $searchBuilder->create();
     $searchResults = $this->taxRuleService->searchTaxRules($searchCriteria);
     $items = [];
     foreach ($expectedRuleCodes as $ruleCode) {
         $ruleId = $this->taxRules[$ruleCode];
         $items[] = $this->taxRuleService->getTaxRule($ruleId);
     }
     /** @var TaxRuleSearchResultsBuilder $resultsBuilder */
     $resultsBuilder = Bootstrap::getObjectManager()->create('Magento\\Tax\\Service\\V1\\Data\\TaxRuleSearchResultsBuilder');
     $expectedResult = $resultsBuilder->setItems($items)->setTotalCount(count($items))->setSearchCriteria($searchCriteria)->create();
     $this->assertEquals($expectedResult, $searchResults);
     $this->tearDownDefaultRules();
 }