Skip to content

Commit b55f998

Browse files
committed
Adds test for refactored ObjectSerializer::toFormValue()
1 parent fddb0f2 commit b55f998

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

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

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,4 +636,98 @@ public function testArrayGivenAsObjectForDeserialize(): void
636636
$tag = $tags[0];
637637
$this->assertInstanceOf(Tag::class, $tag);
638638
}
639+
640+
/**
641+
* @dataProvider providerToFormValue
642+
*/
643+
public function testToFormValue(
644+
mixed $data,
645+
mixed $expected,
646+
): void {
647+
$result = ObjectSerializer::toFormValue('key', $data);
648+
649+
$this->assertEquals($expected, $result);
650+
}
651+
652+
public function providerToFormValue(): iterable
653+
{
654+
yield [
655+
'data' => new DateTime('2021-10-06T20:17:16'),
656+
'expected' => ['key' => '2021-10-06T20:17:16+00:00'],
657+
];
658+
659+
yield [
660+
'data' => true,
661+
'expected' => ['key' => 'true'],
662+
];
663+
664+
yield [
665+
'data' => false,
666+
'expected' => ['key' => 'false'],
667+
];
668+
669+
yield [
670+
'data' => 'some value',
671+
'expected' => ['key' => 'some value'],
672+
];
673+
674+
$filepath = realpath(__DIR__ . '/../.openapi-generator/VERSION');
675+
$file = new \SplFileObject($filepath);
676+
677+
yield [
678+
'data' => $file,
679+
'expected' => ['key' => $filepath],
680+
];
681+
682+
$id = 1234;
683+
$name = 'Spike';
684+
685+
$category = (new Model\Category())
686+
->setId(12345)
687+
->setName("Category_Name");
688+
689+
$tags_1 = (new Model\Tag())
690+
->setId(12345)
691+
->setName("tag_1");
692+
693+
$tags_2 = (new Model\Tag())
694+
->setId(98765)
695+
->setName("tag_2");
696+
697+
$tags = [
698+
$tags_1,
699+
$tags_2,
700+
];
701+
702+
$photo_urls = [
703+
"https://example.com/picture_1.jpg",
704+
"https://example.com/picture_2.jpg",
705+
];
706+
$status = Model\Pet::STATUS_AVAILABLE;
707+
708+
$pet = new Model\Pet([]);
709+
$pet->setId($id)
710+
->setName($name)
711+
->setPhotoUrls($photo_urls)
712+
->setStatus($status)
713+
->setCategory($category)
714+
->setTags($tags);
715+
716+
yield [
717+
'data' => $pet,
718+
'expected' => [
719+
'key[id]' => "{$id}",
720+
'key[name]' => $name,
721+
'key[photoUrls][0]' => $photo_urls[0],
722+
'key[photoUrls][1]' => $photo_urls[1],
723+
'key[status]' => $status,
724+
'key[category][id]' => "{$category->getId()}",
725+
'key[category][name]' => $category->getName(),
726+
'key[tags][0][id]' => "{$tags_1->getId()}",
727+
'key[tags][0][name]' => $tags_1->getName(),
728+
'key[tags][1][id]' => "{$tags_2->getId()}",
729+
'key[tags][1][name]' => $tags_2->getName(),
730+
],
731+
];
732+
}
639733
}

0 commit comments

Comments
 (0)