GroupTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Eav\Test\Unit\Model\Entity\Attribute;
  7. use Magento\Eav\Model\Entity\Attribute\Group;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. class GroupTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var Group
  13. */
  14. private $model;
  15. /**
  16. * @var \PHPUnit_Framework_MockObject_MockObject
  17. */
  18. private $resourceMock;
  19. /**
  20. * @var \PHPUnit_Framework_MockObject_MockObject
  21. */
  22. private $eventManagerMock;
  23. protected function setUp()
  24. {
  25. $this->resourceMock = $this->createMock(\Magento\Eav\Model\ResourceModel\Entity\Attribute\Group::class);
  26. $translitFilter = $this->getMockBuilder(\Magento\Framework\Filter\Translit::class)
  27. ->disableOriginalConstructor()
  28. ->getMock();
  29. $translitFilter->expects($this->atLeastOnce())->method('filter')->willReturnArgument(0);
  30. $this->eventManagerMock = $this->createMock(\Magento\Framework\Event\ManagerInterface::class);
  31. $contextMock = $this->createMock(\Magento\Framework\Model\Context::class);
  32. $contextMock->expects($this->any())->method('getEventDispatcher')->willReturn($this->eventManagerMock);
  33. $constructorArguments = [
  34. 'resource' => $this->resourceMock,
  35. 'translitFilter' => $translitFilter,
  36. 'context' => $contextMock,
  37. ];
  38. $objectManager = new ObjectManager($this);
  39. $this->model = $objectManager->getObject(
  40. \Magento\Eav\Model\Entity\Attribute\Group::class,
  41. $constructorArguments
  42. );
  43. }
  44. /**
  45. * @dataProvider attributeGroupCodeDataProvider
  46. * @param string $groupName
  47. * @param string $groupCode
  48. */
  49. public function testBeforeSaveGeneratesGroupCodeBasedOnGroupName($groupName, $groupCode)
  50. {
  51. $this->model->setAttributeGroupName($groupName);
  52. $this->model->beforeSave();
  53. $this->assertEquals($groupCode, $this->model->getAttributeGroupCode());
  54. }
  55. /**
  56. * @return array
  57. */
  58. public function attributeGroupCodeDataProvider()
  59. {
  60. return [
  61. ['General Group', 'general-group'],
  62. ['///', md5('///')],
  63. ];
  64. }
  65. }