FilesystemTest.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /***
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Data\Test\Unit\Collection;
  7. class FilesystemTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /** @var \Magento\Framework\Data\Collection\Filesystem */
  10. private $model;
  11. protected function setUp()
  12. {
  13. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  14. $this->model = $objectManager->getObject(\Magento\Framework\Data\Collection\Filesystem::class);
  15. }
  16. /**
  17. * @param $field
  18. * @param $filterValue
  19. * @param $row
  20. * @param $expected
  21. *
  22. * @dataProvider testFilterCallbackLikeDataProvider
  23. */
  24. public function testFilterCallbackLike($field, $filterValue, $row, $expected)
  25. {
  26. $filterValue = new \Zend_Db_Expr($filterValue);
  27. $this->assertEquals($expected, $this->model->filterCallbackLike($field, $filterValue, $row));
  28. }
  29. /**
  30. * @return array
  31. */
  32. public function testFilterCallbackLikeDataProvider()
  33. {
  34. $field = 'field';
  35. $testValue = '\'\'\'test\'\'\'Filter\'\'\'Value\'\'\'';
  36. return [
  37. [$field, '\'%test%\'', [$field => $testValue,], true],
  38. [$field, '%\'test%', [$field => $testValue,], true],
  39. [$field, '%\'test\'%', [$field => $testValue,], true],
  40. [$field, '%\'\'test%', [$field => $testValue,], true],
  41. [$field, '%\'\'test\'\'%', [$field => $testValue,], true],
  42. [$field, '%\'\'\'test%', [$field => $testValue,], true],
  43. [$field, '%\'\'\'test\'\'\'%', [$field => $testValue,], true],
  44. [$field, '%\'\'\'\'test%', [$field => $testValue,], false],
  45. [$field, '\'%Value%\'', [$field => $testValue,], true],
  46. [$field, '%Value\'%', [$field => $testValue,], true],
  47. [$field, '%\'Value\'%', [$field => $testValue,], true],
  48. [$field, '%Value\'\'%', [$field => $testValue,], true],
  49. [$field, '%\'\'Value\'\'%', [$field => $testValue,], true],
  50. [$field, '%Value\'\'\'%', [$field => $testValue,], true],
  51. [$field, '%\'\'\'Value\'\'\'%', [$field => $testValue,], true],
  52. [$field, '%Value%\'\'\'\'%', [$field => $testValue,], false],
  53. [$field, '\'%\'\'\'test\'\'\'Filter\'\'\'Value\'\'\'%\'', [$field => $testValue,], true],
  54. [$field, '\'\'\'%\'\'\'test\'\'\'Filter\'\'\'Value\'\'\'%\'\'\'', [$field => $testValue,], true],
  55. [$field, '%test\'\'\'Filter\'\'\'Value%', [$field => $testValue,], true],
  56. [$field, '%test\'\'\'Filter\'\'\'Value\'\'\'%', [$field => $testValue,], true],
  57. [$field, '%\'\'\'test\'\'\'Filter\'\'\'Value%', [$field => $testValue,], true],
  58. [$field, '%\'\'\'Filter\'\'\'Value\'\'\'%', [$field => $testValue,], true],
  59. [$field, '%Filter\'\'\'Value\'\'\'%', [$field => $testValue,], true],
  60. [$field, '%\'\'\'Filter\'\'\'Value%', [$field => $testValue,], true],
  61. [$field, '%Filter\'\'\'Value%', [$field => $testValue,], true],
  62. [$field, '%Filter\'\'\'\'Value%', [$field => $testValue,], false],
  63. [$field, '\'%\'\'\'Filter\'\'\'%\'', [$field => $testValue,], true],
  64. [$field, '%Filter\'\'\'%', [$field => $testValue,], true],
  65. [$field, '%\'\'\'Filter%', [$field => $testValue,], true],
  66. [$field, '%\'Filter%', [$field => $testValue,], true],
  67. [$field, '%Filter\'%', [$field => $testValue,], true],
  68. [$field, '%Filter%', [$field => $testValue,], true],
  69. [$field, '%Filter\'\'\'\'%', [$field => $testValue,], false],
  70. [$field, '\'%no_match_value%\'', [$field => $testValue,], false],
  71. ];
  72. }
  73. }