Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RegionProcessingTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
17 {
21  const RESOURCE_PATH = '/V1/inventory/sources';
22  const SERVICE_NAME = 'inventoryApiSourceRepositoryV1';
26  {
27  $sourceCode = 'source-code-1';
28  $regionId = 10;
29  $data = [
31  SourceInterface::NAME => 'source-name-1',
32  SourceInterface::POSTCODE => 'source-postcode',
34  SourceInterface::REGION_ID => $regionId,
35  ];
36 
37  $this->saveSource($data);
38  $sourceData = $this->getSourceDataByCode($sourceCode);
39 
40  self::assertArrayHasKey(SourceInterface::REGION_ID, $sourceData);
41  self::assertEquals($regionId, $sourceData[SourceInterface::REGION_ID]);
42  self::assertArrayNotHasKey(SourceInterface::REGION, $sourceData);
43  }
44 
45  public function testCreateWithCustomRegion()
46  {
47  $sourceCode = 'source-code-1';
48  $regionName = 'custom-region-name';
49  $data = [
51  SourceInterface::NAME => 'source-name-1',
52  SourceInterface::POSTCODE => 'source-postcode',
54  SourceInterface::REGION => $regionName,
55  ];
56 
57  $this->saveSource($data);
58  $sourceData = $this->getSourceDataByCode($sourceCode);
59 
60  self::assertArrayHasKey(SourceInterface::REGION, $sourceData);
61  self::assertEquals($regionName, $sourceData[SourceInterface::REGION]);
62  self::assertArrayNotHasKey(SourceInterface::REGION_ID, $sourceData);
63  }
64 
66  {
67  $sourceCode = 'source-code-1';
68  $regionId = 10;
69  $regionName = 'custom-region-name';
70  $data = [
72  SourceInterface::NAME => 'source-name-1',
73  SourceInterface::REGION_ID => $regionId,
74  SourceInterface::POSTCODE => 'source-postcode',
76  SourceInterface::REGION => $regionName,
77  ];
78 
79  $this->saveSource($data);
80  $sourceData = $this->getSourceDataByCode($sourceCode);
81 
82  self::assertArrayHasKey(SourceInterface::REGION_ID, $sourceData);
83  self::assertEquals($regionId, $sourceData[SourceInterface::REGION_ID]);
84 
85  self::assertArrayHasKey(SourceInterface::REGION, $sourceData);
86  self::assertEquals($regionName, $sourceData[SourceInterface::REGION]);
87  }
88 
89  protected function tearDown()
90  {
92  $connection = Bootstrap::getObjectManager()->get(ResourceConnection::class);
93  $connection->getConnection()->delete($connection->getTableName('inventory_source'), [
94  SourceInterface::NAME . ' IN (?)' => ['source-name-1'],
95  ]);
96  parent::tearDown();
97  }
98 
103  private function saveSource(array $data)
104  {
105  $serviceInfo = [
106  'rest' => [
107  'resourcePath' => self::RESOURCE_PATH,
108  'httpMethod' => Request::HTTP_METHOD_POST,
109  ],
110  'soap' => [
111  'service' => self::SERVICE_NAME,
112  'operation' => self::SERVICE_NAME . 'Save',
113  ],
114  ];
115  $this->_webApiCall($serviceInfo, ['source' => $data]);
116  }
117 
122  private function getSourceDataByCode(string $sourceCode): array
123  {
124  $serviceInfo = [
125  'rest' => [
126  'resourcePath' => self::RESOURCE_PATH . '/' . $sourceCode,
127  'httpMethod' => Request::HTTP_METHOD_GET,
128  ],
129  'soap' => [
130  'service' => self::SERVICE_NAME,
131  'operation' => self::SERVICE_NAME . 'Get',
132  ],
133  ];
134  $response = (TESTS_WEB_API_ADAPTER === self::ADAPTER_REST)
135  ? $this->_webApiCall($serviceInfo)
136  : $this->_webApiCall($serviceInfo, ['sourceCode' => $sourceCode]);
137  self::assertArrayHasKey(SourceInterface::SOURCE_CODE, $response);
138  return $response;
139  }
140 }
$response
Definition: 404.php:11
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
$sourceCode
Definition: inventory.phtml:11
$connection
Definition: bulk.php:13