@@ -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