Skip to content

Commit c98db05

Browse files
committed
Some more tests
1 parent d886bdc commit c98db05

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

samples/client/petstore/php/OpenAPIClient-php/tests/FormDataProcessorTest.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,23 @@ public function providerFlatten(): iterable
111111
],
112112
];
113113

114+
yield [
115+
'data' => ['nested' => ['pet' => $pet]],
116+
'expected' => [
117+
'nested[pet][id]' => $data['id'],
118+
'nested[pet][name]' => $data['name'],
119+
'nested[pet][photo_urls][0]' => $data['photo_urls'][0],
120+
'nested[pet][photo_urls][1]' => $data['photo_urls'][1],
121+
'nested[pet][status]' => $data['status'],
122+
'nested[pet][category][id]' => (string) $data['category']['id'],
123+
'nested[pet][category][name]' => $data['category']['name'],
124+
'nested[pet][tags][0][id]' => (string) $data['tags'][0]['id'],
125+
'nested[pet][tags][0][name]' => $data['tags'][0]['name'],
126+
'nested[pet][tags][1][id]' => (string) $data['tags'][1]['id'],
127+
'nested[pet][tags][1][name]' => $data['tags'][1]['name'],
128+
],
129+
];
130+
114131
yield [
115132
'data' => ['key' => new DateTime('2021-10-06T20:17:16')],
116133
'expected' => ['key' => '2021-10-06T20:17:16+00:00'],
@@ -151,6 +168,25 @@ public function testHasFile(): void
151168
$this->assertTrue($formDataProcessor->has_file);
152169
}
153170

171+
public function testHasFileNested(): void
172+
{
173+
$filepath = realpath(__DIR__ . '/../.openapi-generator/VERSION');
174+
$file = new SplFileObject($filepath);
175+
176+
$pet = new Model\PetWithFile([]);
177+
$pet->setId(123)
178+
->setName('Spike')
179+
->setFile($file);
180+
181+
$formDataProcessor = new FormDataProcessor();
182+
183+
$this->assertFalse($formDataProcessor->has_file);
184+
$formData = $formDataProcessor->prepare(['nested' => ['pet' => $pet]]);
185+
186+
$this->assertIsResource($formData['nested']['pet']['file'][0]);
187+
$this->assertTrue($formDataProcessor->has_file);
188+
}
189+
154190
public function testHasFileMultiple(): void
155191
{
156192
$filepath = realpath(__DIR__ . '/../.openapi-generator/VERSION');
@@ -169,4 +205,23 @@ public function testHasFileMultiple(): void
169205
$this->assertIsResource($formData['pet']['multiple_files'][0]);
170206
$this->assertTrue($formDataProcessor->has_file);
171207
}
208+
209+
public function testHasFileMultipleNested(): void
210+
{
211+
$filepath = realpath(__DIR__ . '/../.openapi-generator/VERSION');
212+
$file = new SplFileObject($filepath);
213+
214+
$pet = new Model\PetWithFile([]);
215+
$pet->setId(123)
216+
->setName('Spike')
217+
->setMultipleFiles([$file]);
218+
219+
$formDataProcessor = new FormDataProcessor();
220+
221+
$this->assertFalse($formDataProcessor->has_file);
222+
$formData = $formDataProcessor->prepare(['nested' => ['pet' => $pet]]);
223+
224+
$this->assertIsResource($formData['nested']['pet']['multiple_files'][0]);
225+
$this->assertTrue($formDataProcessor->has_file);
226+
}
172227
}

0 commit comments

Comments
 (0)