HavingRendererTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 HavingRendererTest
  10. */
  11. class HavingRendererTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\DB\Select\HavingRenderer
  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\HavingRenderer::class);
  31. }
  32. /**
  33. * @param array $mapValues
  34. * @dataProvider renderNoPartDataProvider
  35. */
  36. public function testRenderNoPart($mapValues)
  37. {
  38. $sql = 'SELECT';
  39. $this->selectMock->expects($this->any())
  40. ->method('getPart')
  41. ->willReturnMap($mapValues);
  42. $this->assertEquals($sql, $this->model->render($this->selectMock, $sql));
  43. }
  44. /**
  45. * Data provider for testRenderNoPart
  46. * @return array
  47. */
  48. public function renderNoPartDataProvider()
  49. {
  50. return [
  51. [[[Select::FROM, false], [Select::HAVING, false]]],
  52. [[[Select::FROM, true], [Select::HAVING, false]]],
  53. [[[Select::FROM, false], [Select::HAVING, true]]],
  54. ];
  55. }
  56. public function testRender()
  57. {
  58. $sql = 'SELECT';
  59. $expectedResult = $sql . ' ' . Select::SQL_HAVING . ' having1 having2';
  60. $mapValues = [
  61. [Select::FROM, true],
  62. [Select::HAVING, ['having1', 'having2']]
  63. ];
  64. $this->selectMock->expects($this->any())
  65. ->method('getPart')
  66. ->willReturnMap($mapValues);
  67. $this->assertEquals($expectedResult, $this->model->render($this->selectMock, $sql));
  68. }
  69. }