| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 | <?phprequire_once('generated/NoNamespaceEnum.php');require_once('generated/NoNamespaceMessage.php');require_once('test_base.php');require_once('test_util.php');use Foo\TestMessage;class GeneratedPhpdocTest extends TestBase{    public function testPhpDocForClass()    {        $class = new ReflectionClass('Foo\TestMessage');        $doc = $class->getDocComment();        $this->assertStringContains('foo.TestMessage', $doc);    }    public function testPhpDocForConstructor()    {        $class = new ReflectionClass('Foo\TestMessage');        $doc = $class->getMethod('__construct')->getDocComment();        $this->assertStringContains('@param array $data', $doc);        $this->assertStringContains('@type int $optional_int32', $doc);    }    /**     * @dataProvider providePhpDocForGettersAndSetters     */    public function testPhpDocForIntGetters($methods, $expectedDoc)    {        $class = new ReflectionClass('Foo\TestMessage');        foreach ($methods as $method) {            $doc = $class->getMethod($method)->getDocComment();            $this->assertStringContains($expectedDoc, $doc);        }    }    public function providePhpDocForGettersAndSetters()    {        return [            [                [                    'setOptionalInt32',                    'setOptionalUint32',                    'setOptionalSint32',                    'setOptionalFixed32',                    'setOptionalSfixed32',                    'setOneofInt32',                    'setOneofUint32',                    'setOneofSint32',                    'setOneofFixed32',                    'setOneofSfixed32',                    'setOptionalEnum',                    'setOptionalNoNamespaceEnum',                    'setOptionalNestedEnum',                    'setOneofEnum'                ],                '@param int $var'            ],            [                [                    'setOptionalInt64',                    'setOptionalUint64',                    'setOptionalSint64',                    'setOptionalFixed64',                    'setOptionalSfixed64',                    'setOneofInt64',                    'setOneofUint64',                    'setOneofSint64',                    'setOneofFixed64',                    'setOneofSfixed64',                ],                '@param int|string $var'            ],            [                [                    'getOptionalInt32',                    'getOptionalUint32',                    'getOptionalSint32',                    'getOptionalFixed32',                    'getOptionalSfixed32',                    'getOneofInt32',                    'getOneofUint32',                    'getOneofSint32',                    'getOneofFixed32',                    'getOneofSfixed32',                    'getOptionalEnum',                    'getOptionalNoNamespaceEnum',                    'getOptionalNestedEnum',                    'getOneofEnum',                ],                '@return int'            ],            [                [                    'setOptionalInt64',                    'setOptionalUint64',                    'setOptionalSint64',                    'setOptionalFixed64',                    'setOptionalSfixed64',                    'setOneofInt64',                    'setOneofUint64',                    'setOneofSint64',                    'setOneofFixed64',                    'setOneofSfixed64',                ],                '@param int|string $var'            ],            [                [                    'getRepeatedInt32',                    'getRepeatedInt64',                    'getRepeatedUint32',                    'getRepeatedUint64',                    'getRepeatedSint32',                    'getRepeatedSint64',                    'getRepeatedFixed32',                    'getRepeatedFixed64',                    'getRepeatedSfixed32',                    'getRepeatedSfixed64',                    'getRepeatedFloat',                    'getRepeatedDouble',                    'getRepeatedBool',                    'getRepeatedString',                    'getRepeatedBytes',                    'getRepeatedEnum',                    'getRepeatedMessage',                    'getRepeatedRecursive',                    'getRepeatedNoNamespaceMessage',                    'getRepeatedNoNamespaceEnum',                ],                '@return \Google\Protobuf\Internal\RepeatedField'            ],            [                [                    'getMapInt32Int32',                    'getMapInt64Int64',                    'getMapUint32Uint32',                    'getMapUint64Uint64',                    'getMapSint32Sint32',                    'getMapSint64Sint64',                    'getMapFixed32Fixed32',                    'getMapFixed64Fixed64',                    'getMapSfixed32Sfixed32',                    'getMapSfixed64Sfixed64',                    'getMapInt32Float',                    'getMapInt32Double',                    'getMapBoolBool',                    'getMapStringString',                    'getMapInt32Bytes',                    'getMapInt32Enum',                    'getMapInt32Message',                    'getMapRecursive',                ],                '@return \Google\Protobuf\Internal\MapField'            ],            [                [                    'setRepeatedInt32',                    'setRepeatedUint32',                    'setRepeatedSint32',                    'setRepeatedFixed32',                    'setRepeatedSfixed32',                    'setRepeatedEnum',                    'setRepeatedNoNamespaceEnum',                ],                '@param int[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedInt64',                    'setRepeatedUint64',                    'setRepeatedSint64',                    'setRepeatedFixed64',                    'setRepeatedSfixed64',                ],                '@param int[]|string[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedFloat',                    'setRepeatedDouble',                ],                '@param float[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedBool',                ],                '@param bool[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedString',                    'setRepeatedBytes',                ],                '@param string[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedMessage',                ],                '@param \Foo\TestMessage\Sub[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedRecursive',                ],                '@param \Foo\TestMessage[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setRepeatedNoNamespaceMessage',                ],                '@param \NoNamespaceMessage[]|\Google\Protobuf\Internal\RepeatedField $var'            ],            [                [                    'setMapInt32Int32',                    'setMapInt64Int64',                    'setMapUint32Uint32',                    'setMapUint64Uint64',                    'setMapSint32Sint32',                    'setMapSint64Sint64',                    'setMapFixed32Fixed32',                    'setMapFixed64Fixed64',                    'setMapSfixed32Sfixed32',                    'setMapSfixed64Sfixed64',                    'setMapInt32Float',                    'setMapInt32Double',                    'setMapBoolBool',                    'setMapStringString',                    'setMapInt32Bytes',                    'setMapInt32Enum',                    'setMapInt32Message',                    'setMapRecursive',                ],                '@param array|\Google\Protobuf\Internal\MapField $var'            ],            [                [                    'getOptionalFloat',                    'getOptionalDouble',                    'getOneofDouble',                    'getOneofFloat',                ],                '@return float'            ],            [                [                    'setOptionalFloat',                    'setOptionalDouble',                    'setOneofDouble',                    'setOneofFloat',                ],                '@param float $var'            ],            [                [                    'getOptionalBool',                    'getOneofBool',                ],                '@return bool'],            [                [                    'setOptionalBool',                    'setOneofBool',                ],                '@param bool $var'            ],            [                [                    'getOptionalString',                    'getOptionalBytes',                    'getOneofString',                    'getOneofBytes',                    'getMyOneof',                ],                '@return string'            ],            [                [                    'setOptionalString',                    'setOptionalBytes',                    'setOneofString',                    'setOneofBytes',                ],                '@param string $var'            ],            [                [                    'getOptionalMessage',                    'getOneofMessage'                ],                '@return \Foo\TestMessage\Sub'            ],            [                [                    'setOptionalMessage',                    'setOneofMessage'                ],                '@param \Foo\TestMessage\Sub $var'            ],            [                [                    'getOptionalIncludedMessage'                ],                '@return \Bar\TestInclude'            ],            [                [                    'setOptionalIncludedMessage'                ],                '@param \Bar\TestInclude $var'            ],            [                [                    'getRecursive'                ],                '@return \Foo\TestMessage'            ],            [                [                    'setRecursive'                ],                '@param \Foo\TestMessage $var'            ],            [                [                    'getOptionalNoNamespaceMessage'                ],                '@return \NoNamespaceMessage'            ],            [                [                    'setOptionalNoNamespaceMessage'                ],                '@param \NoNamespaceMessage $var'            ],            [                [                    'setDeprecatedOptionalInt32',                    'getDeprecatedOptionalInt32',                ],                '@deprecated'            ],        ];    }}
 |