13 use Magento\Tax\Api\Data\TaxClassInterfaceFactory;
30 private $searchCriteriaBuilder;
33 private $filterBuilder;
36 private $sortOrderBuilder;
39 private $taxClassFactory;
42 private $taxClassRepository;
45 private $taxClassRegistry;
55 \
Magento\Framework\Api\SearchCriteriaBuilder::class
58 \
Magento\Framework\Api\FilterBuilder::class
61 \
Magento\Tax\Api\Data\TaxClassInterfaceFactory::class
64 \
Magento\Tax\Model\ClassModelRegistry::class
67 \
Magento\Tax\Model\TaxClass\Repository::class,
68 [
'classModelRegistry' => $this->taxClassRegistry]
71 \
Magento\Framework\Api\SortOrderBuilder::class
78 public function testCreateTaxClass()
80 $taxClassName = self::SAMPLE_TAX_CLASS_NAME . uniqid();
82 $taxClassDataObject = $this->taxClassFactory->create();
83 $taxClassDataObject->setClassName($taxClassName)
93 'operation' => self::SERVICE_NAME .
'Save',
98 'class_id' => $taxClassDataObject->getClassId(),
99 'class_name' => $taxClassDataObject->getClassName(),
100 'class_type' => $taxClassDataObject->getClassType(),
104 $this->assertNotNull($taxClassId);
107 $taxClassData = $this->taxClassRepository->get($taxClassId);
108 $this->assertEquals($taxClassData->getClassName(), $taxClassName);
118 $taxClassDataObject = $this->taxClassFactory->create();
119 $taxClassDataObject->setClassName(self::SAMPLE_TAX_CLASS_NAME . uniqid())
121 $taxClassId = $this->taxClassRepository->save($taxClassDataObject);
122 $this->assertNotNull($taxClassId);
125 $updatedTaxClassName = self::SAMPLE_TAX_CLASS_NAME . uniqid();
126 $updatedTaxClassDataObject = $taxClassDataObject;
127 $updatedTaxClassDataObject->setClassName($updatedTaxClassName);
131 'resourcePath' => self::RESOURCE_PATH .
'/' . $taxClassId,
137 'operation' => self::SERVICE_NAME .
'Save',
142 'class_id' => $updatedTaxClassDataObject->getClassId(),
143 'class_name' => $updatedTaxClassDataObject->getClassName(),
144 'class_type' => $updatedTaxClassDataObject->getClassType(),
147 $requestData = [
'taxClass' => $taxClass,
'ClassId' => $taxClassId];
152 $this->taxClassRegistry->remove($taxClassId);
153 $taxClassData = $this->taxClassRepository->get($taxClassId);
154 $this->assertEquals($taxClassData->getClassName(), $updatedTaxClassName);
160 $taxClassName = self::SAMPLE_TAX_CLASS_NAME . uniqid();
161 $taxClassDataObject = $this->taxClassFactory->create();
162 $taxClassDataObject->setClassName($taxClassName)
164 $taxClassId = $this->taxClassRepository->save($taxClassDataObject);
165 $this->assertNotNull($taxClassId);
170 'resourcePath' => self::RESOURCE_PATH .
'/' . $taxClassId,
176 'operation' => self::SERVICE_NAME .
'Get',
193 $taxClassDataObject = $this->taxClassFactory->create();
194 $taxClassDataObject->setClassName(self::SAMPLE_TAX_CLASS_NAME . uniqid())
196 $taxClassId = $this->taxClassRepository->save($taxClassDataObject);
197 $this->assertNotNull($taxClassId);
202 'resourcePath' => self::RESOURCE_PATH .
'/' . $taxClassId,
208 'operation' => self::SERVICE_NAME .
'DeleteById',
216 $this->taxClassRegistry->remove($taxClassId);
217 $this->taxClassRepository->get($taxClassId);
218 $this->fail(
"Tax class was not expected to be returned after being deleted.");
220 $this->assertEquals(
'No such entity with class_id = ' . $taxClassId, $e->getMessage());
229 $taxClassName =
'Retail Customer';
231 $filter = $this->filterBuilder->setField($taxClassNameField)
232 ->setValue($taxClassName)
234 $this->searchCriteriaBuilder->addFilters([$filter]);
235 $searchData = $this->searchCriteriaBuilder->create()->__toArray();
239 'resourcePath' => self::RESOURCE_PATH .
'/search' .
'?' . http_build_query(
$requestData),
245 'operation' => self::SERVICE_NAME .
'GetList',
249 $this->assertEquals(1, $searchResults[
'total_count']);
250 $this->assertEquals($taxClassName, $searchResults[
'items'][0][$taxClassNameField]);
277 $sortOrder = $this->sortOrderBuilder->setField(
"class_type")
278 ->setDirection(
"ASC")->create();
284 $this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
285 $this->searchCriteriaBuilder->addFilters([$filter3, $filter4]);
286 $this->searchCriteriaBuilder->addSortOrder($sortOrder);
287 $searchCriteria = $this->searchCriteriaBuilder->setCurrentPage(1)->setPageSize(10)->create();
292 'resourcePath' => self::RESOURCE_PATH .
'/search' .
'?' . http_build_query(
$requestData),
298 'operation' => self::SERVICE_NAME .
'GetList',
302 $this->assertEquals(2, $searchResults[
'total_count']);
313 $this->searchCriteriaBuilder->addFilters([$filter2]);
314 $this->searchCriteriaBuilder->addFilters([$filter3, $filter4]);
318 $serviceInfo[
'rest'][
'resourcePath'] = self::RESOURCE_PATH .
'/search' .
'?' . http_build_query(
$requestData);
320 $this->assertEquals(1, $searchResults[
'total_count']);
const SAMPLE_TAX_CLASS_NAME
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
testSearchTaxClassMultipleFilterGroups()
static getObjectManager()