BookmarkRepositoryTest.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Ui\Api;
  7. use Magento\Ui\Model\ResourceModel\BookmarkRepository;
  8. use Magento\Framework\Api\FilterBuilder;
  9. use Magento\Framework\Api\SearchCriteriaBuilder;
  10. use Magento\Framework\Api\SortOrderBuilder;
  11. /**
  12. * Class CarrierTest
  13. * @package Magento\Ups\Model
  14. * @magentoDbIsolation enabled
  15. */
  16. class BookmarkRepositoryTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /** @var BookmarkRepository */
  19. private $repository;
  20. /** @var SortOrderBuilder */
  21. private $sortOrderBuilder;
  22. /** @var FilterBuilder */
  23. private $filterBuilder;
  24. /** @var SearchCriteriaBuilder */
  25. private $searchCriteriaBuilder;
  26. protected function setUp()
  27. {
  28. $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  29. $this->repository = $objectManager->create(BookmarkRepository::class);
  30. $this->searchCriteriaBuilder = $objectManager->create(
  31. \Magento\Framework\Api\SearchCriteriaBuilder::class
  32. );
  33. $this->filterBuilder = $objectManager->get(
  34. \Magento\Framework\Api\FilterBuilder::class
  35. );
  36. $this->sortOrderBuilder = $objectManager->get(
  37. \Magento\Framework\Api\SortOrderBuilder::class
  38. );
  39. }
  40. /**
  41. * @magentoDataFixture Magento/Ui/_files/bookmarks.php
  42. */
  43. public function testGetListWithMultipleFiltersAndSorting()
  44. {
  45. $filter1 = $this->filterBuilder
  46. ->setField('namespace')
  47. ->setValue('bm_namespace')
  48. ->create();
  49. $filter2 = $this->filterBuilder
  50. ->setField('namespace')
  51. ->setValue('new_namespace')
  52. ->create();
  53. $filter3 = $this->filterBuilder
  54. ->setField('current')
  55. ->setValue(1)
  56. ->create();
  57. $sortOrder = $this->sortOrderBuilder
  58. ->setField('title')
  59. ->setDirection('DESC')
  60. ->create();
  61. $this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
  62. $this->searchCriteriaBuilder->addFilters([$filter3]);
  63. $this->searchCriteriaBuilder->addSortOrder($sortOrder);
  64. $searchCriteria = $this->searchCriteriaBuilder->create();
  65. /** @var \Magento\Ui\Api\Data\BookmarkSearchResultsInterface $result */
  66. $result = $this->repository->getList($searchCriteria);
  67. $this->assertCount(2, $result->getItems());
  68. $this->assertEquals('Default View', $result->getItems()[0]->getTitle());
  69. $this->assertEquals('Bb', $result->getItems()[1]->getTitle());
  70. }
  71. }