AddressRepositoryTest.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\Order;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. use Magento\Framework\Api\FilterBuilder;
  9. use Magento\Framework\Api\SearchCriteriaBuilder;
  10. use Magento\Framework\Api\SortOrderBuilder;
  11. /**
  12. * Class AddressRepositoryTest
  13. * @package Magento\Sales\Model\Order]
  14. * @magentoDbIsolation enabled
  15. */
  16. class AddressRepositoryTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /** @var AddressRepository */
  19. protected $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(AddressRepository::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/Sales/_files/address_list.php
  42. */
  43. public function testGetListWithMultipleFiltersAndSorting()
  44. {
  45. $filter1 = $this->filterBuilder
  46. ->setField('postcode')
  47. ->setConditionType('neq')
  48. ->setValue('ZX0789A')
  49. ->create();
  50. $filter2 = $this->filterBuilder
  51. ->setField('address_type')
  52. ->setValue('billing')
  53. ->create();
  54. $filter3 = $this->filterBuilder
  55. ->setField('city')
  56. ->setValue('Ena4ka')
  57. ->create();
  58. $sortOrder = $this->sortOrderBuilder
  59. ->setField('region_id')
  60. ->setDirection('DESC')
  61. ->create();
  62. $this->searchCriteriaBuilder->addFilters([$filter1]);
  63. $this->searchCriteriaBuilder->addFilters([$filter2, $filter3]);
  64. $this->searchCriteriaBuilder->addSortOrder($sortOrder);
  65. $searchCriteria = $this->searchCriteriaBuilder->create();
  66. /** @var \Magento\Sales\Api\Data\OrderAddressSearchResultInterface $result */
  67. $result = $this->repository->getList($searchCriteria);
  68. $items = $result->getItems();
  69. $this->assertCount(2, $items);
  70. $this->assertEquals('ZX0789', array_shift($items)->getPostcode());
  71. $this->assertEquals('47676', array_shift($items)->getPostcode());
  72. }
  73. }