StrategyTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Indexer\Test\Unit;
  7. /**
  8. * Class StrategyTest
  9. * @package Magento\Indexer\Test\Unit\Model\Indexer\Table
  10. */
  11. class StrategyTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * Strategy object
  15. *
  16. * @var \Magento\Framework\Indexer\Table\Strategy
  17. */
  18. protected $_model;
  19. /**
  20. * Resource mock
  21. *
  22. * @var \Magento\Framework\App\ResourceConnection|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $_resourceMock;
  25. /**
  26. * {@inheritdoc}
  27. */
  28. protected function setUp()
  29. {
  30. $this->_resourceMock = $this->createMock(\Magento\Framework\App\ResourceConnection::class);
  31. $this->_model = new \Magento\Framework\Indexer\Table\Strategy(
  32. $this->_resourceMock
  33. );
  34. }
  35. /**
  36. * Test use idx table switcher
  37. *
  38. * @return void
  39. */
  40. public function testUseIdxTable()
  41. {
  42. $this->assertEquals(false, $this->_model->getUseIdxTable());
  43. $this->_model->setUseIdxTable(false);
  44. $this->assertEquals(false, $this->_model->getUseIdxTable());
  45. $this->_model->setUseIdxTable(true);
  46. $this->assertEquals(true, $this->_model->getUseIdxTable());
  47. $this->_model->setUseIdxTable();
  48. $this->assertEquals(false, $this->_model->getUseIdxTable());
  49. }
  50. /**
  51. * Test table name preparation
  52. *
  53. * @return void
  54. */
  55. public function testPrepareTableName()
  56. {
  57. $this->assertEquals('test_tmp', $this->_model->prepareTableName('test'));
  58. $this->_model->setUseIdxTable(true);
  59. $this->assertEquals('test_idx', $this->_model->prepareTableName('test'));
  60. $this->_model->setUseIdxTable(false);
  61. $this->assertEquals('test_tmp', $this->_model->prepareTableName('test'));
  62. }
  63. /**
  64. * Test table name getter
  65. *
  66. * @return void
  67. */
  68. public function testGetTableName()
  69. {
  70. $prefix = 'pre_';
  71. $this->_resourceMock->expects($this->any())->method('getTableName')->will(
  72. $this->returnCallback(
  73. function ($tableName) use ($prefix) {
  74. return $prefix . $tableName;
  75. }
  76. )
  77. );
  78. $this->assertEquals('pre_test_tmp', $this->_model->getTableName('test'));
  79. $this->_model->setUseIdxTable(true);
  80. $this->assertEquals('pre_test_idx', $this->_model->getTableName('test'));
  81. }
  82. }