Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InvoiceListTest.php
Go to the documentation of this file.
1 <?php
7 
10 
15 {
16  const RESOURCE_PATH = '/V1/invoices';
17 
18  const SERVICE_READ_NAME = 'salesInvoiceRepositoryV1';
19 
20  const SERVICE_VERSION = 'V1';
21 
25  protected $objectManager;
26 
27  protected function setUp()
28  {
30  }
31 
35  public function testInvoiceList()
36  {
38  $sortOrderBuilder = $this->objectManager->get(
39  SortOrderBuilder::class
40  );
42  $searchCriteriaBuilder = $this->objectManager->create(
43  \Magento\Framework\Api\SearchCriteriaBuilder::class
44  );
45 
47  $filterBuilder = $this->objectManager->create(
48  \Magento\Framework\Api\FilterBuilder::class
49  );
50 
51  $stateFilter = $filterBuilder
52  ->setField('state')
53  ->setValue((string)\Magento\Sales\Model\Order\Creditmemo::STATE_OPEN)
54  ->setConditionType('eq')
55  ->create();
56  $incrementFilter = $filterBuilder
57  ->setField('increment_id')
58  ->setValue('456')
59  ->setConditionType('eq')
60  ->create();
61  $zeroStatusFilter = $filterBuilder
62  ->setField('can_void_flag')
63  ->setValue('0')
64  ->setConditionType('eq')
65  ->create();
66  $sortOrder = $sortOrderBuilder
67  ->setField('grand_total')
68  ->setDirection('ASC')
69  ->create();
70 
71  $searchCriteriaBuilder->addFilters([$stateFilter]);
72  $searchCriteriaBuilder->addFilters([$incrementFilter, $zeroStatusFilter]);
73  $searchCriteriaBuilder->addSortOrder($sortOrder);
74  $searchData = $searchCriteriaBuilder->create()->__toArray();
75 
76  $requestData = ['searchCriteria' => $searchData];
77  $serviceInfo = [
78  'rest' => [
79  'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData),
81  ],
82  'soap' => [
83  'service' => self::SERVICE_READ_NAME,
84  'serviceVersion' => self::SERVICE_VERSION,
85  'operation' => self::SERVICE_READ_NAME . 'getList',
86  ],
87  ];
88 
89  $result = $this->_webApiCall($serviceInfo, $requestData);
90  // TODO Test fails, due to the inability of the framework API to handle data collection
91  $this->assertArrayHasKey('items', $result);
92  $this->assertCount(2, $result['items']);
93  $this->assertArrayHasKey('search_criteria', $result);
94  $this->assertEquals('789', $result['items'][0]['increment_id']);
95  $this->assertEquals('456', $result['items'][1]['increment_id']);
96  $this->assertEquals($searchData, $result['search_criteria']);
97  }
98 }
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
$searchCriteriaBuilder