MassDeleteTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Block;
  7. use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest;
  8. class MassDeleteTest extends AbstractMassActionTest
  9. {
  10. /**
  11. * @var \Magento\Cms\Controller\Adminhtml\Block\MassDelete
  12. */
  13. protected $massDeleteController;
  14. /**
  15. * @var \Magento\Cms\Model\ResourceModel\Block\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
  16. */
  17. protected $collectionFactoryMock;
  18. /**
  19. * @var \Magento\Cms\Model\ResourceModel\Block\Collection|\PHPUnit_Framework_MockObject_MockObject
  20. */
  21. protected $blockCollectionMock;
  22. protected function setUp()
  23. {
  24. parent::setUp();
  25. $this->collectionFactoryMock = $this->createPartialMock(
  26. \Magento\Cms\Model\ResourceModel\Block\CollectionFactory::class,
  27. ['create']
  28. );
  29. $this->blockCollectionMock =
  30. $this->createMock(\Magento\Cms\Model\ResourceModel\Block\Collection::class);
  31. $this->massDeleteController = $this->objectManager->getObject(
  32. \Magento\Cms\Controller\Adminhtml\Block\MassDelete::class,
  33. [
  34. 'context' => $this->contextMock,
  35. 'filter' => $this->filterMock,
  36. 'collectionFactory' => $this->collectionFactoryMock
  37. ]
  38. );
  39. }
  40. public function testMassDeleteAction()
  41. {
  42. $deletedBlocksCount = 2;
  43. $collection = [
  44. $this->getBlockMock(),
  45. $this->getBlockMock()
  46. ];
  47. $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock);
  48. $this->filterMock->expects($this->once())
  49. ->method('getCollection')
  50. ->with($this->blockCollectionMock)
  51. ->willReturn($this->blockCollectionMock);
  52. $this->blockCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedBlocksCount);
  53. $this->blockCollectionMock->expects($this->once())
  54. ->method('getIterator')
  55. ->willReturn(new \ArrayIterator($collection));
  56. $this->messageManagerMock->expects($this->once())
  57. ->method('addSuccessMessage')
  58. ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocksCount));
  59. $this->messageManagerMock->expects($this->never())->method('addErrorMessage');
  60. $this->resultRedirectMock->expects($this->once())
  61. ->method('setPath')
  62. ->with('*/*/')
  63. ->willReturnSelf();
  64. $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute());
  65. }
  66. /**
  67. * Create Cms Block Collection Mock
  68. *
  69. * @return \Magento\Cms\Model\ResourceModel\Block\Collection|\PHPUnit_Framework_MockObject_MockObject
  70. */
  71. protected function getBlockMock()
  72. {
  73. $blockMock = $this->createPartialMock(\Magento\Cms\Model\ResourceModel\Block\Collection::class, ['delete']);
  74. $blockMock->expects($this->once())->method('delete')->willReturn(true);
  75. return $blockMock;
  76. }
  77. }