ManagementTest.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Tax\Test\Unit\Model\TaxClass;
  7. use \Magento\Tax\Model\TaxClass\Management;
  8. class ManagementTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /** @var Management */
  11. protected $model;
  12. /**
  13. * @var \PHPUnit_Framework_MockObject_MockObject
  14. */
  15. protected $filterBuilder;
  16. /**
  17. * @var \PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $searchCriteriaBuilder;
  20. /**
  21. * @var \PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $classRepository;
  24. protected function setUp()
  25. {
  26. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  27. $this->classRepository = $this->createMock(\Magento\Tax\Model\TaxClass\Repository::class);
  28. $this->searchCriteriaBuilder = $this->createMock(\Magento\Framework\Api\SearchCriteriaBuilder::class);
  29. $this->filterBuilder = $this->createMock(\Magento\Framework\Api\FilterBuilder::class);
  30. $this->model = $helper->getObject(
  31. \Magento\Tax\Model\TaxClass\Management::class,
  32. [
  33. 'filterBuilder' => $this->filterBuilder,
  34. 'searchCriteriaBuilder' => $this->searchCriteriaBuilder,
  35. 'classRepository' => $this->classRepository
  36. ]
  37. );
  38. }
  39. public function testGetTaxClassIdWithoutKey()
  40. {
  41. $this->assertNull($this->model->getTaxClassId(null));
  42. }
  43. public function testGetTaxClassIdByIDType()
  44. {
  45. $taxClassKey = $this->createMock(\Magento\Tax\Api\Data\TaxClassKeyInterface::class);
  46. $taxClassKey->expects($this->once())
  47. ->method('getType')
  48. ->willReturn(\Magento\Tax\Api\Data\TaxClassKeyInterface::TYPE_ID);
  49. $taxClassKey->expects($this->once())->method('getValue')->willReturn('value');
  50. $this->assertEquals('value', $this->model->getTaxClassId($taxClassKey));
  51. }
  52. public function testGetTaxClassIdByNameType()
  53. {
  54. $taxClassKey = $this->createMock(\Magento\Tax\Api\Data\TaxClassKeyInterface::class);
  55. $taxClassKey->expects($this->once())
  56. ->method('getType')
  57. ->willReturn(\Magento\Tax\Api\Data\TaxClassKeyInterface::TYPE_NAME);
  58. $taxClassKey->expects($this->once())->method('getValue')->willReturn('value');
  59. $this->filterBuilder
  60. ->expects($this->exactly(2))
  61. ->method('setField')
  62. ->with(
  63. $this->logicalOr(
  64. \Magento\Tax\Model\ClassModel::KEY_TYPE,
  65. \Magento\Tax\Model\ClassModel::KEY_NAME
  66. )
  67. )->willReturnSelf();
  68. $this->filterBuilder
  69. ->expects($this->exactly(2))
  70. ->method('setValue')
  71. ->with(
  72. $this->logicalOr(
  73. 'PRODUCT',
  74. 'value'
  75. )
  76. )->willReturnSelf();
  77. $filter = $this->createMock(\Magento\Framework\Api\Filter::class);
  78. $this->filterBuilder->expects($this->exactly(2))->method('create')->willReturn($filter);
  79. $this->searchCriteriaBuilder
  80. ->expects($this->exactly(2))
  81. ->method('addFilters')
  82. ->with([$filter])
  83. ->willReturnSelf();
  84. $searchCriteria = $this->createMock(\Magento\Framework\Api\SearchCriteriaInterface::class);
  85. $this->searchCriteriaBuilder->expects($this->once())->method('create')->willReturn($searchCriteria);
  86. $result = $this->createMock(\Magento\Tax\Api\Data\TaxRateSearchResultsInterface::class);
  87. $result->expects($this->once())->method('getItems')->willReturn([]);
  88. $this->classRepository->expects($this->once())->method('getList')->with($searchCriteria)->willReturn($result);
  89. $this->assertNull($this->model->getTaxClassId($taxClassKey), 'PRODUCT');
  90. }
  91. }