PageRenderTime 84ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/dev/tests/integration/testsuite/Magento/Tax/Model/ClassTest.php

https://gitlab.com/crazybutterfly815/magento2
PHP | 144 lines | 95 code | 14 blank | 35 comment | 0 complexity | 018fe82ea454dd3a9d1cf02378c05422 MD5 | raw file
  1. <?php
  2. /**
  3. * Copyright © 2016 Magento. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Tax\Model;
  7. class ClassTest extends \PHPUnit_Framework_TestCase
  8. {
  9. /**
  10. * @var \Magento\TestFramework\ObjectManager
  11. */
  12. protected $_objectManager;
  13. protected function setUp()
  14. {
  15. /** @var $objectManager \Magento\TestFramework\ObjectManager */
  16. $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  17. }
  18. /**
  19. * @magentoDbIsolation enabled
  20. */
  21. public function testCheckClassCanBeDeletedCustomerClassAssertException()
  22. {
  23. /** @var $model \Magento\Tax\Model\ClassModel */
  24. $model = $this->_objectManager->create(
  25. \Magento\Tax\Model\ClassModel::class
  26. )->getCollection()->setClassTypeFilter(
  27. \Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_CUSTOMER
  28. )->getFirstItem();
  29. $this->setExpectedException(\Magento\Framework\Exception\CouldNotDeleteException::class);
  30. $model->delete();
  31. }
  32. /**
  33. * @magentoDbIsolation enabled
  34. */
  35. public function testCheckClassCanBeDeletedProductClassAssertException()
  36. {
  37. /** @var $model \Magento\Tax\Model\ClassModel */
  38. $model = $this->_objectManager->create(
  39. \Magento\Tax\Model\ClassModel::class
  40. )->getCollection()->setClassTypeFilter(
  41. \Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_PRODUCT
  42. )->getFirstItem();
  43. $this->_objectManager->create(
  44. \Magento\Catalog\Model\Product::class
  45. )->setTypeId(
  46. 'simple'
  47. )->setAttributeSetId(
  48. 4
  49. )->setName(
  50. 'Simple Product'
  51. )->setSku(
  52. uniqid()
  53. )->setPrice(
  54. 10
  55. )->setMetaTitle(
  56. 'meta title'
  57. )->setMetaKeyword(
  58. 'meta keyword'
  59. )->setMetaDescription(
  60. 'meta description'
  61. )->setVisibility(
  62. \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
  63. )->setStatus(
  64. \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
  65. )->setTaxClassId(
  66. $model->getId()
  67. )->save();
  68. $this->setExpectedException(\Magento\Framework\Exception\CouldNotDeleteException::class);
  69. $model->delete();
  70. }
  71. /**
  72. * @magentoDbIsolation enabled
  73. * @dataProvider classesDataProvider
  74. */
  75. public function testCheckClassCanBeDeletedPositiveResult($classType)
  76. {
  77. /** @var $model \Magento\Tax\Model\ClassModel */
  78. $model = $this->_objectManager->create(\Magento\Tax\Model\ClassModel::class);
  79. $model->setClassName('TaxClass' . uniqid())->setClassType($classType)->isObjectNew(true);
  80. $model->save();
  81. $model->delete();
  82. }
  83. public function classesDataProvider()
  84. {
  85. return [
  86. [\Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_CUSTOMER],
  87. [\Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_PRODUCT]
  88. ];
  89. }
  90. /**
  91. * @magentoAppIsolation enabled
  92. * @magentoDataFixture Magento/Tax/_files/tax_classes.php
  93. */
  94. public function testCheckClassCanBeDeletedCustomerClassUsedInTaxRule()
  95. {
  96. /** @var $registry \Magento\Framework\Registry */
  97. $registry = $this->_objectManager->get(\Magento\Framework\Registry::class);
  98. /** @var $taxRule \Magento\Tax\Model\Calculation\Rule */
  99. $taxRule = $registry->registry('_fixture/Magento_Tax_Model_Calculation_Rule');
  100. $customerClasses = $taxRule->getCustomerTaxClasses();
  101. /** @var $model \Magento\Tax\Model\ClassModel */
  102. $model = $this->_objectManager->create(\Magento\Tax\Model\ClassModel::class)->load($customerClasses[0]);
  103. $this->setExpectedException(
  104. \Magento\Framework\Exception\CouldNotDeleteException::class,
  105. 'You cannot delete this tax class because it is used in' .
  106. ' Tax Rules. You have to delete the rules it is used in first.'
  107. );
  108. $model->delete();
  109. }
  110. /**
  111. * @magentoAppIsolation enabled
  112. * @magentoDataFixture Magento/Tax/_files/tax_classes.php
  113. */
  114. public function testCheckClassCanBeDeletedProductClassUsedInTaxRule()
  115. {
  116. /** @var $registry \Magento\Framework\Registry */
  117. $registry = $this->_objectManager->get(\Magento\Framework\Registry::class);
  118. /** @var $taxRule \Magento\Tax\Model\Calculation\Rule */
  119. $taxRule = $registry->registry('_fixture/Magento_Tax_Model_Calculation_Rule');
  120. $productClasses = $taxRule->getProductTaxClasses();
  121. /** @var $model \Magento\Tax\Model\ClassModel */
  122. $model = $this->_objectManager->create(\Magento\Tax\Model\ClassModel::class)->load($productClasses[0]);
  123. $this->setExpectedException(
  124. \Magento\Framework\Exception\CouldNotDeleteException::class,
  125. 'You cannot delete this tax class because it is used in' .
  126. ' Tax Rules. You have to delete the rules it is used in first.'
  127. );
  128. $model->delete();
  129. }
  130. }