blob: 526927fc28b29ae88ae8b4371828a65f41310ed6 [file] [log] [blame]
Austin Schuh40c16522018-10-28 20:27:54 -07001<?php
2
3require_once('generated/NoNamespaceEnum.php');
4require_once('generated/NoNamespaceMessage.php');
5require_once('test_base.php');
6require_once('test_util.php');
7
8use Foo\TestMessage;
9
10class GeneratedPhpdocTest extends TestBase
11{
12 public function testPhpDocForClass()
13 {
14 $class = new ReflectionClass('Foo\TestMessage');
15 $doc = $class->getDocComment();
16 $this->assertContains('foo.TestMessage', $doc);
17 }
18
19 public function testPhpDocForConstructor()
20 {
21 $class = new ReflectionClass('Foo\TestMessage');
22 $doc = $class->getMethod('__construct')->getDocComment();
23 $this->assertContains('@param array $data', $doc);
24 $this->assertContains('@type int $optional_int32', $doc);
25 }
26
27 /**
28 * @dataProvider providePhpDocForGettersAndSetters
29 */
30 public function testPhpDocForIntGetters($methods, $expectedDoc)
31 {
32 $class = new ReflectionClass('Foo\TestMessage');
33 foreach ($methods as $method) {
34 $doc = $class->getMethod($method)->getDocComment();
35 $this->assertContains($expectedDoc, $doc);
36 }
37 }
38
39 public function providePhpDocForGettersAndSetters()
40 {
41 return [
42 [
43 [
44 'setOptionalInt32',
45 'setOptionalUint32',
46 'setOptionalSint32',
47 'setOptionalFixed32',
48 'setOptionalSfixed32',
49 'setOneofInt32',
50 'setOneofUint32',
51 'setOneofSint32',
52 'setOneofFixed32',
53 'setOneofSfixed32',
54 'setOptionalEnum',
55 'setOptionalNoNamespaceEnum',
56 'setOptionalNestedEnum',
57 'setOneofEnum'
58 ],
59 '@param int $var'
60 ],
61 [
62 [
63 'setOptionalInt64',
64 'setOptionalUint64',
65 'setOptionalSint64',
66 'setOptionalFixed64',
67 'setOptionalSfixed64',
68 'setOneofInt64',
69 'setOneofUint64',
70 'setOneofSint64',
71 'setOneofFixed64',
72 'setOneofSfixed64',
73 ],
74 '@param int|string $var'
75 ],
76 [
77 [
78 'getOptionalInt32',
79 'getOptionalUint32',
80 'getOptionalSint32',
81 'getOptionalFixed32',
82 'getOptionalSfixed32',
83 'getOneofInt32',
84 'getOneofUint32',
85 'getOneofSint32',
86 'getOneofFixed32',
87 'getOneofSfixed32',
88 'getOptionalEnum',
89 'getOptionalNoNamespaceEnum',
90 'getOptionalNestedEnum',
91 'getOneofEnum',
92 ],
93 '@return int'
94 ],
95 [
96 [
97 'setOptionalInt64',
98 'setOptionalUint64',
99 'setOptionalSint64',
100 'setOptionalFixed64',
101 'setOptionalSfixed64',
102 'setOneofInt64',
103 'setOneofUint64',
104 'setOneofSint64',
105 'setOneofFixed64',
106 'setOneofSfixed64',
107 ],
108 '@param int|string $var'
109 ],
110 [
111 [
112 'getRepeatedInt32',
113 'getRepeatedInt64',
114 'getRepeatedUint32',
115 'getRepeatedUint64',
116 'getRepeatedSint32',
117 'getRepeatedSint64',
118 'getRepeatedFixed32',
119 'getRepeatedFixed64',
120 'getRepeatedSfixed32',
121 'getRepeatedSfixed64',
122 'getRepeatedFloat',
123 'getRepeatedDouble',
124 'getRepeatedBool',
125 'getRepeatedString',
126 'getRepeatedBytes',
127 'getRepeatedEnum',
128 'getRepeatedMessage',
129 'getRepeatedRecursive',
130 'getRepeatedNoNamespaceMessage',
131 'getRepeatedNoNamespaceEnum',
132 ],
133 '@return \Google\Protobuf\Internal\RepeatedField'
134 ],
135 [
136 [
137 'getMapInt32Int32',
138 'getMapInt64Int64',
139 'getMapUint32Uint32',
140 'getMapUint64Uint64',
141 'getMapSint32Sint32',
142 'getMapSint64Sint64',
143 'getMapFixed32Fixed32',
144 'getMapFixed64Fixed64',
145 'getMapSfixed32Sfixed32',
146 'getMapSfixed64Sfixed64',
147 'getMapInt32Float',
148 'getMapInt32Double',
149 'getMapBoolBool',
150 'getMapStringString',
151 'getMapInt32Bytes',
152 'getMapInt32Enum',
153 'getMapInt32Message',
154 'getMapRecursive',
155 ],
156 '@return \Google\Protobuf\Internal\MapField'
157 ],
158 [
159 [
160 'setRepeatedInt32',
161 'setRepeatedUint32',
162 'setRepeatedSint32',
163 'setRepeatedFixed32',
164 'setRepeatedSfixed32',
165 'setRepeatedEnum',
166 'setRepeatedNoNamespaceEnum',
167 ],
168 '@param int[]|\Google\Protobuf\Internal\RepeatedField $var'
169 ],
170 [
171 [
172 'setRepeatedInt64',
173 'setRepeatedUint64',
174 'setRepeatedSint64',
175 'setRepeatedFixed64',
176 'setRepeatedSfixed64',
177 ],
178 '@param int[]|string[]|\Google\Protobuf\Internal\RepeatedField $var'
179 ],
180 [
181 [
182 'setRepeatedFloat',
183 'setRepeatedDouble',
184 ],
185 '@param float[]|\Google\Protobuf\Internal\RepeatedField $var'
186 ],
187 [
188 [
189 'setRepeatedBool',
190 ],
191 '@param bool[]|\Google\Protobuf\Internal\RepeatedField $var'
192 ],
193 [
194 [
195 'setRepeatedString',
196 'setRepeatedBytes',
197 ],
198 '@param string[]|\Google\Protobuf\Internal\RepeatedField $var'
199 ],
200 [
201 [
202 'setRepeatedMessage',
203 ],
204 '@param \Foo\TestMessage\Sub[]|\Google\Protobuf\Internal\RepeatedField $var'
205 ],
206 [
207 [
208 'setRepeatedRecursive',
209 ],
210 '@param \Foo\TestMessage[]|\Google\Protobuf\Internal\RepeatedField $var'
211 ],
212 [
213 [
214 'setRepeatedNoNamespaceMessage',
215 ],
216 '@param \NoNamespaceMessage[]|\Google\Protobuf\Internal\RepeatedField $var'
217 ],
218 [
219 [
220 'setMapInt32Int32',
221 'setMapInt64Int64',
222 'setMapUint32Uint32',
223 'setMapUint64Uint64',
224 'setMapSint32Sint32',
225 'setMapSint64Sint64',
226 'setMapFixed32Fixed32',
227 'setMapFixed64Fixed64',
228 'setMapSfixed32Sfixed32',
229 'setMapSfixed64Sfixed64',
230 'setMapInt32Float',
231 'setMapInt32Double',
232 'setMapBoolBool',
233 'setMapStringString',
234 'setMapInt32Bytes',
235 'setMapInt32Enum',
236 'setMapInt32Message',
237 'setMapRecursive',
238 ],
239 '@param array|\Google\Protobuf\Internal\MapField $var'
240 ],
241 [
242 [
243 'getOptionalFloat',
244 'getOptionalDouble',
245 'getOneofDouble',
246 'getOneofFloat',
247 ],
248 '@return float'
249 ],
250 [
251 [
252 'setOptionalFloat',
253 'setOptionalDouble',
254 'setOneofDouble',
255 'setOneofFloat',
256 ],
257 '@param float $var'
258 ],
259 [
260 [
261 'getOptionalBool',
262 'getOneofBool',
263 ],
264 '@return bool'],
265 [
266 [
267 'setOptionalBool',
268 'setOneofBool',
269 ],
270 '@param bool $var'
271 ],
272 [
273 [
274 'getOptionalString',
275 'getOptionalBytes',
276 'getOneofString',
277 'getOneofBytes',
278 'getMyOneof',
279 ],
280 '@return string'
281 ],
282 [
283 [
284 'setOptionalString',
285 'setOptionalBytes',
286 'setOneofString',
287 'setOneofBytes',
288 ],
289 '@param string $var'
290 ],
291
292 [
293 [
294 'getOptionalMessage',
295 'getOneofMessage'
296 ],
297 '@return \Foo\TestMessage\Sub'
298 ],
299 [
300 [
301 'setOptionalMessage',
302 'setOneofMessage'
303 ],
304 '@param \Foo\TestMessage\Sub $var'
305 ],
306 [
307 [
308 'getOptionalIncludedMessage'
309 ],
310 '@return \Bar\TestInclude'
311 ],
312 [
313 [
314 'setOptionalIncludedMessage'
315 ],
316 '@param \Bar\TestInclude $var'
317 ],
318 [
319 [
320 'getRecursive'
321 ],
322 '@return \Foo\TestMessage'
323 ],
324 [
325 [
326 'setRecursive'
327 ],
328 '@param \Foo\TestMessage $var'
329 ],
330
331 [
332 [
333 'getOptionalNoNamespaceMessage'
334 ],
335 '@return \NoNamespaceMessage'
336 ],
337 [
338 [
339 'setOptionalNoNamespaceMessage'
340 ],
341 '@param \NoNamespaceMessage $var'
342 ],
343 ];
344 }
345}