Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreditmemoListTest.php
Go to the documentation of this file.
1 <?php
7 
11 
16 {
20  const RESOURCE_PATH = '/V1/creditmemos';
21 
25  const SERVICE_READ_NAME = 'salesCreditmemoRepositoryV1';
26 
30  const SERVICE_VERSION = 'V1';
31 
35  protected $objectManager;
36 
40  protected function setUp()
41  {
42  $this->objectManager = Bootstrap::getObjectManager();
43  }
44 
50  public function testCreditmemoList()
51  {
53  $sortOrderBuilder = $this->objectManager->get(
54  SortOrderBuilder::class
55  );
57  $searchCriteriaBuilder = $this->objectManager->create(
58  \Magento\Framework\Api\SearchCriteriaBuilder::class
59  );
60 
62  $filterBuilder = $this->objectManager->create(
63  \Magento\Framework\Api\FilterBuilder::class
64  );
65  $stateFilter = $filterBuilder
66  ->setField('state')
67  ->setValue((string)\Magento\Sales\Model\Order\Creditmemo::STATE_OPEN)
68  ->setConditionType('eq')
69  ->create();
70  $incrementFilter = $filterBuilder
71  ->setField('increment_id')
72  ->setValue('456')
73  ->setConditionType('eq')
74  ->create();
75  $zeroStatusFilter = $filterBuilder
76  ->setField('creditmemo_status')
77  ->setValue('0')
78  ->setConditionType('eq')
79  ->create();
80  $sortOrder = $sortOrderBuilder
81  ->setField('grand_total')
82  ->setDirection('ASC')
83  ->create();
84  $searchCriteriaBuilder->addFilters([$stateFilter]);
85  $searchCriteriaBuilder->addFilters([$incrementFilter, $zeroStatusFilter]);
86  $searchCriteriaBuilder->addSortOrder($sortOrder);
87 
88  $searchData = $searchCriteriaBuilder->create()->__toArray();
89 
90  $requestData = ['searchCriteria' => $searchData];
91  $serviceInfo = [
92  'rest' => [
93  'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData),
95  ],
96  'soap' => [
97  'service' => self::SERVICE_READ_NAME,
98  'serviceVersion' => self::SERVICE_VERSION,
99  'operation' => self::SERVICE_READ_NAME . 'getList',
100  ],
101  ];
102 
103  $result = $this->_webApiCall($serviceInfo, $requestData);
104  // TODO Test fails, due to the inability of the framework API to handle data collection
105  $this->assertArrayHasKey('items', $result);
106  $this->assertCount(2, $result['items']);
107  $this->assertArrayHasKey('search_criteria', $result);
108  $this->assertEquals('789', $result['items'][0]['increment_id']);
109  $this->assertEquals('456', $result['items'][1]['increment_id']);
110  $this->assertEquals($searchData, $result['search_criteria']);
111  }
112 }
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
$searchCriteriaBuilder