DistinctRendererTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DB\Test\Unit\Select;
  7. use Magento\Framework\DB\Select;
  8. /**
  9. * Class DistinctRendererTest
  10. */
  11. class DistinctRendererTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\DB\Select\DistinctRenderer
  15. */
  16. protected $model;
  17. /**
  18. * @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $selectMock;
  21. /**
  22. * Set up
  23. *
  24. * @return void
  25. */
  26. protected function setUp()
  27. {
  28. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  29. $this->selectMock = $this->createPartialMock(\Magento\Framework\DB\Select::class, ['getPart']);
  30. $this->model = $objectManager->getObject(\Magento\Framework\DB\Select\DistinctRenderer::class);
  31. }
  32. public function testRenderNoPart()
  33. {
  34. $sql = 'SELECT';
  35. $this->selectMock->expects($this->once())
  36. ->method('getPart')
  37. ->with(Select::DISTINCT)
  38. ->willReturn(false);
  39. $this->assertEquals($sql, $this->model->render($this->selectMock, $sql));
  40. }
  41. public function testRender()
  42. {
  43. $sql = 'SELECT';
  44. $expectedResult = $sql . ' ' . Select::SQL_DISTINCT . ' ';
  45. $this->selectMock->expects($this->once())
  46. ->method('getPart')
  47. ->with(Select::DISTINCT)
  48. ->willReturn(true);
  49. $this->assertEquals($expectedResult, $this->model->render($this->selectMock, $sql));
  50. }
  51. }