Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ProductRenderListInterfaceTest.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Catalog\Api;
7 
14 
16 {
17  const SERVICE_NAME = 'catalogProductRenderListV1';
18  const SERVICE_VERSION = 'V1';
19  const RESOURCE_PATH = '/V1/products-render-info/';
20 
30  public function testGetList(array $expectedRenderInfo)
31  {
32  $expectedIds = [21, 31];
34  $filterBuilder = Bootstrap::getObjectManager()->create(FilterBuilder::class);
36  $sortOrderBuilder = Bootstrap::getObjectManager()->create(SortOrderBuilder::class);
37  $sortOrder = $sortOrderBuilder
38  ->setField('entity_id')
39  ->setDirection(SortOrder::SORT_ASC)
40  ->create();
41 
44  ->create(SearchCriteriaBuilder::class);
45 
46  $filter1 = $filterBuilder
47  ->setField('entity_id')
48  ->setValue(implode(",", $expectedIds))
49  ->setConditionType('in')
50  ->create();
51 
52  $searchCriteriaBuilder->addFilters([$filter1])
53  ->addSortOrder($sortOrder);
54 
55  $searchData['search_criteria'] = $searchCriteriaBuilder->create()->__toArray();
56  $searchData['store_id'] = 1;
57  $searchData['currency_code'] = 'USD';
58 
59  $serviceInfo = [
60  'rest' => [
61  'resourcePath' => self::RESOURCE_PATH . "?" . http_build_query($searchData),
63  ],
64  'soap' => [
65  'service' => self::SERVICE_NAME,
66  'serviceVersion' => self::SERVICE_VERSION,
67  'operation' => self::SERVICE_NAME . 'GetList',
68  ],
69  ];
70 
71  $result = $this->_webApiCall($serviceInfo, $searchData);
72 
73  foreach ($result['items'] as $id => $resultItem) {
74  $expectedItem = $expectedRenderInfo[$id];
75  $this->assertEquals($expectedItem['name'], $resultItem['name']);
76  $this->assertEquals($expectedItem['type'], $resultItem['type']);
77  $this->assertEquals($expectedItem['is_salable'], $resultItem['is_salable']);
78  $this->assertEquals($expectedItem['store_id'], $resultItem['store_id']);
79  $this->assertEquals($expectedItem['currency_code'], $resultItem['currency_code']);
80  $this->assertEquals(
81  $expectedItem['final_price'],
82  $resultItem['price_info']['formatted_prices']['final_price']
83  );
84  }
85  }
86 
91  public function productRenderInfoProvider()
92  {
93  return [
94  'simple_products_variation' => [
95  [
96  [
97  'id' => 21,
98  'name' => 'Virtual Product',
99  'type' => 'virtual',
100  'is_salable' => true,
101  'store_id' => 1,
102  'currency_code' => 'USD',
103  'final_price' => '<span class="price">$10.00</span>'
104  ],
105  [
106  'id' => 31,
107  'name' => 'Simple Product',
108  'type' => 'simple',
109  'is_salable' => true,
110  'store_id' => 1,
111  'currency_code' => 'USD',
112  'final_price' => '<span class="price">$5.99</span>'
113  ]
114  ]
115  ]
116  ];
117  }
118 }
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
$id
Definition: fieldset.phtml:14
$searchCriteriaBuilder