Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TaxClassProcessorTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class TaxClassProcessorTest extends \PHPUnit\Framework\TestCase
11 {
12  const TEST_TAX_CLASS_NAME = 'className';
13 
14  const TEST_TAX_CLASS_ID = 1;
15 
17 
21  protected $objectManager;
22 
25 
29  protected $taxClassProcessor;
30 
34  protected $product;
35 
36  protected function setUp()
37  {
38  $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
39  $this->objectManagerHelper = new ObjectManagerHelper($this);
40 
41  $taxClass = $this->getMockBuilder(\Magento\Tax\Model\ClassModel::class)
42  ->disableOriginalConstructor()
43  ->getMock();
44  $taxClass->method('getClassName')->will($this->returnValue(self::TEST_TAX_CLASS_NAME));
45  $taxClass->method('getId')->will($this->returnValue(self::TEST_TAX_CLASS_ID));
46 
47  $taxClassCollection =
48  $this->objectManagerHelper->getCollectionMock(
49  \Magento\Tax\Model\ResourceModel\TaxClass\Collection::class,
50  [$taxClass]
51  );
52 
53  $taxClassCollectionFactory = $this->createPartialMock(
54  \Magento\Tax\Model\ResourceModel\TaxClass\CollectionFactory::class,
55  ['create']
56  );
57 
58  $taxClassCollectionFactory->method('create')->will($this->returnValue($taxClassCollection));
59 
60  $anotherTaxClass = $this->getMockBuilder(\Magento\Tax\Model\ClassModel::class)
61  ->disableOriginalConstructor()
62  ->getMock();
63  $anotherTaxClass->method('getClassName')->will($this->returnValue(self::TEST_TAX_CLASS_NAME));
64  $anotherTaxClass->method('getId')->will($this->returnValue(self::TEST_JUST_CREATED_TAX_CLASS_ID));
65 
66  $taxClassFactory = $this->createPartialMock(\Magento\Tax\Model\ClassModelFactory::class, ['create']);
67 
68  $taxClassFactory->method('create')->will($this->returnValue($anotherTaxClass));
69 
70  $this->taxClassProcessor =
71  new \Magento\CatalogImportExport\Model\Import\Product\TaxClassProcessor(
72  $taxClassCollectionFactory,
73  $taxClassFactory
74  );
75 
76  $this->product =
77  $this->getMockForAbstractClass(
78  \Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType::class,
79  [],
80  '',
81  false
82  );
83  }
84 
85  public function testUpsertTaxClassExist()
86  {
87  $taxClassId = $this->taxClassProcessor->upsertTaxClass(self::TEST_TAX_CLASS_NAME, $this->product);
88  $this->assertEquals(self::TEST_TAX_CLASS_ID, $taxClassId);
89  }
90 
91  public function testUpsertTaxClassNotExist()
92  {
93  $taxClassId = $this->taxClassProcessor->upsertTaxClass('noExistClassName', $this->product);
94  $this->assertEquals(self::TEST_JUST_CREATED_TAX_CLASS_ID, $taxClassId);
95  }
96 }