Completed
Push — master ( 088bf6...a47832 )
by Martijn
02:41
created

SwaggerTest::testHandleCommand_Model()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 18
nc 1
nop 0
dl 0
loc 27
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
class SwaggerTest extends SwaggerGen_TestCase
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
4
{
5
6
	/**
7
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
8
	 */
9
	public function testConstructor_Empty()
10
	{
11
		$object = new \SwaggerGen\Swagger\Swagger();
12
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
13
14
		$this->expectException('\SwaggerGen\Exception', "No path defined");
15
		$object->toArray();
16
	}
17
18
	/**
19
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
20
	 */
21
	public function testConstructor_Empty_WithEndPoint()
22
	{
23
		$object = new \SwaggerGen\Swagger\Swagger();
24
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
25
26
		$path = $object->handleCommand('endpoint');
27
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
28
29
		$this->assertSame(array(
30
			'swagger' => '2.0',
31
			'info' => array(
32
				'title' => 'undefined',
33
				'version' => '0',
34
			),
35
			'paths' => array(
36
				'/' => array(),
37
			)
38
				), $object->toArray());
39
	}
40
41
	/**
42
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
43
	 */
44
	public function testConstructor_Empty_Host()
45
	{
46
		$object = new \SwaggerGen\Swagger\Swagger('http://localhost');
47
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
48
49
		$path = $object->handleCommand('endpoint');
50
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
51
52
		$this->assertSame(array(
53
			'swagger' => '2.0',
54
			'info' => array(
55
				'title' => 'undefined',
56
				'version' => '0',
57
			),
58
			'host' => 'http://localhost',
59
			'paths' => array(
60
				'/' => array(),
61
			)
62
				), $object->toArray());
63
	}
64
65
	/**
66
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
67
	 */
68
	public function testConstructor_Empty_HostBasepath()
69
	{
70
		$object = new \SwaggerGen\Swagger\Swagger('http://localhost', 'api');
71
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
72
73
		$path = $object->handleCommand('endpoint');
74
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
75
76
		$this->assertSame(array(
77
			'swagger' => '2.0',
78
			'info' => array(
79
				'title' => 'undefined',
80
				'version' => '0',
81
			),
82
			'host' => 'http://localhost',
83
			'basePath' => 'api',
84
			'paths' => array(
85
				'/' => array(),
86
			)
87
				), $object->toArray());
88
	}
89
90
	/**
91
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
92
	 */
93
	public function testHandleCommand_Info_Pass()
94
	{
95
		$object = new \SwaggerGen\Swagger\Swagger('http://localhost', 'api');
96
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
97
98
		$path = $object->handleCommand('endpoint');
99
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
100
101
		$object->handleCommand('title', 'This is the title');
102
		$object->handleCommand('description', 'This is the description');
103
		$object->handleCommand('license', 'BSD');
104
		$object->handleCommand('terms', 'These are the terms');
105
		$object->handleCommand('version', '1.2.3a');
106
		$object->handleCommand('title', 'This is the title');
107
		$object->handleCommand('contact', 'Arthur D. Author http://example.test [email protected]');
108
109
		$this->assertSame(array(
110
			'swagger' => '2.0',
111
			'info' => array('title' => 'This is the title',
112
				'description' => 'This is the description',
113
				'termsOfService' => 'These are the terms',
114
				'contact' => array(
115
					'name' => 'Arthur D. Author',
116
					'url' => 'http://example.test',
117
					'email' => '[email protected]',
118
				),
119
				'license' => array(
120
					'name' => 'BSD',
121
					'url' => 'https://opensource.org/licenses/BSD-2-Clause',
122
				),
123
				'version' => '1.2.3a',
124
			),
125
			'host' => 'http://localhost',
126
			'basePath' => 'api',
127
			'paths' => array(
128
				'/' => array(),
129
			)
130
				), $object->toArray());
131
	}
132
133
	/**
134
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
135
	 */
136
	public function testHandleCommand_Schemes_Empty()
137
	{
138
		$object = new \SwaggerGen\Swagger\Swagger();
139
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
140
141
		$return = $object->handleCommand('schemes');
142
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
143
144
		$path = $object->handleCommand('endpoint');
145
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
146
147
		$this->assertSame(array(
148
			'swagger' => '2.0',
149
			'info' => array(
150
				'title' => 'undefined',
151
				'version' => '0',
152
			),
153
			'paths' => array(
154
				'/' => array(),
155
			),
156
				), $object->toArray());
157
	}
158
159
	/**
160
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
161
	 */
162
	public function testHandleCommand_Schemes()
163
	{
164
		$object = new \SwaggerGen\Swagger\Swagger();
165
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
166
167
		$return = $object->handleCommand('schemes', 'http https');
168
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
169
170
		$path = $object->handleCommand('endpoint');
171
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
172
173
		$this->assertSame(array(
174
			'swagger' => '2.0',
175
			'info' => array(
176
				'title' => 'undefined',
177
				'version' => '0',
178
			),
179
			'schemes' => array(
180
				'http',
181
				'https',
182
			),
183
			'paths' => array(
184
				'/' => array(),
185
			),
186
				), $object->toArray());
187
	}
188
189
	/**
190
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
191
	 */
192
	public function testHandleCommand_Schemes_Append()
193
	{
194
		$object = new \SwaggerGen\Swagger\Swagger();
195
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
196
197
		$return = $object->handleCommand('schemes', 'ws wss');
198
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
199
200
		$return = $object->handleCommand('schemes', 'http ws');
201
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
202
203
		$path = $object->handleCommand('endpoint');
204
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
205
206
		$this->assertSame(array(
207
			'swagger' => '2.0',
208
			'info' => array(
209
				'title' => 'undefined',
210
				'version' => '0',
211
			),
212
			'schemes' => array(
213
				'http',
214
				'ws',
215
				'wss',
216
			),
217
			'paths' => array(
218
				'/' => array(),
219
			),
220
				), $object->toArray());
221
	}
222
223
	/**
224
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
225
	 */
226
	public function testHandleCommand_Consumes_Empty()
227
	{
228
		$object = new \SwaggerGen\Swagger\Swagger();
229
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
230
231
		$return = $object->handleCommand('consumes');
232
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
233
234
		$path = $object->handleCommand('endpoint');
235
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
236
237
		$this->assertSame(array(
238
			'swagger' => '2.0',
239
			'info' => array(
240
				'title' => 'undefined',
241
				'version' => '0',
242
			),
243
			'paths' => array(
244
				'/' => array(),
245
			),
246
				), $object->toArray());
247
	}
248
249
	/**
250
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
251
	 */
252
	public function testHandleCommand_Consumes()
253
	{
254
		$object = new \SwaggerGen\Swagger\Swagger();
255
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
256
257
		$return = $object->handleCommand('consumes', 'image/png text');
258
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
259
260
		$path = $object->handleCommand('endpoint');
261
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
262
263
		$this->assertSame(array(
264
			'swagger' => '2.0',
265
			'info' => array(
266
				'title' => 'undefined',
267
				'version' => '0',
268
			),
269
			'consumes' => array(
270
				'image/png',
271
				'text/plain',
272
			),
273
			'paths' => array(
274
				'/' => array(),
275
			),
276
				), $object->toArray());
277
	}
278
279
	/**
280
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
281
	 */
282
	public function testHandleCommand_Consumes_Append()
283
	{
284
		$object = new \SwaggerGen\Swagger\Swagger();
285
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
286
287
		$return = $object->handleCommand('consumes', 'image/png text');
288
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
289
290
		$return = $object->handleCommand('consumes', 'text json');
291
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
292
293
		$path = $object->handleCommand('endpoint');
294
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
295
296
		$this->assertSame(array(
297
			'swagger' => '2.0',
298
			'info' => array(
299
				'title' => 'undefined',
300
				'version' => '0',
301
			),
302
			'consumes' => array(
303
				'application/json',
304
				'image/png',
305
				'text/plain',
306
			),
307
			'paths' => array(
308
				'/' => array(),
309
			),
310
				), $object->toArray());
311
	}
312
313
	/**
314
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
315
	 */
316
	public function testHandleCommand_Produces_Empty()
317
	{
318
		$object = new \SwaggerGen\Swagger\Swagger();
319
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
320
321
		$return = $object->handleCommand('produces');
322
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
323
324
		$path = $object->handleCommand('endpoint');
325
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
326
327
		$this->assertSame(array(
328
			'swagger' => '2.0',
329
			'info' => array(
330
				'title' => 'undefined',
331
				'version' => '0',
332
			),
333
			'paths' => array(
334
				'/' => array(),
335
			),
336
				), $object->toArray());
337
	}
338
339
	/**
340
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
341
	 */
342
	public function testHandleCommand_Produces()
343
	{
344
		$object = new \SwaggerGen\Swagger\Swagger();
345
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
346
347
		$return = $object->handleCommand('produces', 'image/png text');
348
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
349
350
		$path = $object->handleCommand('endpoint');
351
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
352
353
		$this->assertSame(array(
354
			'swagger' => '2.0',
355
			'info' => array(
356
				'title' => 'undefined',
357
				'version' => '0',
358
			),
359
			'produces' => array(
360
				'image/png',
361
				'text/plain',
362
			),
363
			'paths' => array(
364
				'/' => array(),
365
			),
366
				), $object->toArray());
367
	}
368
369
	/**
370
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
371
	 */
372
	public function testHandleCommand_Produces_Append()
373
	{
374
		$object = new \SwaggerGen\Swagger\Swagger();
375
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
376
377
		$return = $object->handleCommand('produces', 'image/png text');
378
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
379
380
		$return = $object->handleCommand('produces', 'text json');
381
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
382
383
		$path = $object->handleCommand('endpoint');
384
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
385
386
		$this->assertSame(array(
387
			'swagger' => '2.0',
388
			'info' => array(
389
				'title' => 'undefined',
390
				'version' => '0',
391
			),
392
			'produces' => array(
393
				'application/json',
394
				'image/png',
395
				'text/plain',
396
			),
397
			'paths' => array(
398
				'/' => array(),
399
			),
400
				), $object->toArray());
401
	}
402
403
	/**
404
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
405
	 */
406
	public function testHandleCommand_Tag_Empty()
407
	{
408
		$object = new \SwaggerGen\Swagger\Swagger();
409
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
410
411
		$this->expectException('\SwaggerGen\Exception', "Missing tag name");
412
		$object->handleCommand('tag');
413
	}
414
415
	/**
416
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
417
	 */
418
	public function testHandleCommand_Tag()
419
	{
420
		$object = new \SwaggerGen\Swagger\Swagger();
421
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
422
423
		$return = $object->handleCommand('tag', 'Users');
424
		$this->assertInstanceOf('\SwaggerGen\Swagger\Tag', $return);
425
426
		$path = $object->handleCommand('endpoint');
427
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
428
		$operation = $path->handleCommand('method', 'get');
429
		$this->assertInstanceOf('\SwaggerGen\Swagger\Operation', $operation);
430
		$response = $operation->handleCommand('response', 200);
431
		$this->assertInstanceOf('\SwaggerGen\Swagger\Response', $response);
432
433
		$this->assertSame(array(
434
			'swagger' => '2.0',
435
			'info' => array(
436
				'title' => 'undefined',
437
				'version' => '0',
438
			),
439
			'paths' => array(
440
				'/' => array(
441
					'get' => array(
442
						'responses' => array(
443
							200 => array(
444
								'description' => 'OK',
445
							),
446
						),
447
					),
448
				),
449
			),
450
			'tags' => array(
451
				array(
452
					'name' => 'Users',
453
				),
454
			),
455
				), $object->toArray());
456
	}
457
458
	/**
459
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
460
	 */
461
	public function testHandleCommand_Api()
462
	{
463
		$object = new \SwaggerGen\Swagger\Swagger();
464
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
465
466
		$return = $object->handleCommand('api', 'Users');
467
		$this->assertInstanceOf('\SwaggerGen\Swagger\Tag', $return);
468
469
		$path = $object->handleCommand('endpoint');
470
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
471
		$operation = $path->handleCommand('method', 'get');
472
		$this->assertInstanceOf('\SwaggerGen\Swagger\Operation', $operation);
473
		$response = $operation->handleCommand('response', 200);
474
		$this->assertInstanceOf('\SwaggerGen\Swagger\Response', $response);
475
476
		$this->assertSame(array(
477
			'swagger' => '2.0',
478
			'info' => array(
479
				'title' => 'undefined',
480
				'version' => '0',
481
			),
482
			'paths' => array(
483
				'/' => array(
484
					'get' => array(
485
						'tags' => array(
486
							'Users',
487
						),
488
						'responses' => array(
489
							200 => array(
490
								'description' => 'OK',
491
							),
492
						),
493
					),
494
				),
495
			),
496
			'tags' => array(
497
				array(
498
					'name' => 'Users',
499
				),
500
			),
501
				), $object->toArray());
502
	}
503
504
	/**
505
	 * @covers \SwaggerGen\Swagger\Swagger::handleCommand
506
	 */
507
	public function testHandleCommand_Tag_Repeat()
508
	{
509
		$object = new \SwaggerGen\Swagger\Swagger();
510
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
511
512
		$return = $object->handleCommand('tag', 'Users Info A');
513
		$this->assertInstanceOf('\SwaggerGen\Swagger\Tag', $return);
514
515
		$return = $object->handleCommand('tag', 'Users Info B');
516
		$this->assertInstanceOf('\SwaggerGen\Swagger\Tag', $return);
517
518
		$path = $object->handleCommand('endpoint');
519
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
520
521
		$this->assertSame(array(
522
			'swagger' => '2.0',
523
			'info' => array(
524
				'title' => 'undefined',
525
				'version' => '0',
526
			),
527
			'paths' => array(
528
				'/' => array(),
529
			),
530
			'tags' => array(
531
				array(
532
					'name' => 'Users',
533
					'description' => 'Info A',
534
				),
535
			),
536
				), $object->toArray());
537
	}
538
539
	/**
540
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
541
	 */
542
	public function testHandleCommand_EndPoint_Empty()
543
	{
544
		$object = new \SwaggerGen\Swagger\Swagger();
545
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
546
547
		$path = $object->handleCommand('endpoint');
548
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
549
550
		$this->assertSame(array(
551
			'swagger' => '2.0',
552
			'info' => array(
553
				'title' => 'undefined',
554
				'version' => '0',
555
			),
556
			'paths' => array(
557
				'/' => array(),
558
			)
559
				), $object->toArray());
560
	}
561
562
	/**
563
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
564
	 */
565
	public function testHandleCommand_EndPoint()
566
	{
567
		$object = new \SwaggerGen\Swagger\Swagger();
568
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
569
570
		$path = $object->handleCommand('endpoint', 'users/:userid/rights');
571
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
572
573
		$this->assertSame(array(
574
			'swagger' => '2.0',
575
			'info' => array(
576
				'title' => 'undefined',
577
				'version' => '0',
578
			),
579
			'paths' => array(
580
				'/users/:userid/rights' => array(),
581
			)
582
				), $object->toArray());
583
	}
584
585
	/**
586
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
587
	 */
588
	public function testHandleCommand_EndPoint_Tag()
589
	{
590
		$object = new \SwaggerGen\Swagger\Swagger();
591
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
592
593
		$path = $object->handleCommand('endpoint', 'users/:userid/rights Users');
594
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
595
596
		$this->assertSame(array(
597
			'swagger' => '2.0',
598
			'info' => array(
599
				'title' => 'undefined',
600
				'version' => '0',
601
			),
602
			'paths' => array(
603
				'/users/:userid/rights' => array(),
604
			),
605
			'tags' => array(
606
				array(
607
					'name' => 'Users',
608
				),
609
			),
610
				), $object->toArray());
611
	}
612
613
	/**
614
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
615
	 */
616
	public function testHandleCommand_EndPoint_Tag_NoDescriptionOverwrite()
617
	{
618
		$object = new \SwaggerGen\Swagger\Swagger();
619
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
620
621
		$path = $object->handleCommand('api', 'Users something here');
0 ignored issues
show
Unused Code introduced by
$path is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
622
		$path = $object->handleCommand('endpoint', 'users/:userid/rights Users');
623
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
624
625
		$this->assertSame(array(
626
			'swagger' => '2.0',
627
			'info' => array(
628
				'title' => 'undefined',
629
				'version' => '0',
630
			),
631
			'paths' => array(
632
				'/users/:userid/rights' => array(),
633
			),
634
			'tags' => array(
635
				array(
636
					'name' => 'Users',
637
					'description' => 'something here',
638
				),
639
			),
640
				), $object->toArray());
641
	}
642
643
	/**
644
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
645
	 */
646
	public function testHandleCommand_EndPoint_Tag_Description()
647
	{
648
		$object = new \SwaggerGen\Swagger\Swagger();
649
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
650
651
		$path = $object->handleCommand('endpoint', 'users/:userid/rights Users Description here');
652
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
653
654
		$this->assertSame(array(
655
			'swagger' => '2.0',
656
			'info' => array(
657
				'title' => 'undefined',
658
				'version' => '0',
659
			),
660
			'paths' => array(
661
				'/users/:userid/rights' => array(),
662
			),
663
			'tags' => array(
664
				array(
665
					'name' => 'Users',
666
					'description' => 'Description here',
667
				),
668
			),
669
				), $object->toArray());
670
	}
671
672
	/**
673
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
674
	 */
675
	public function testHandleCommand_Security_Empty()
676
	{
677
		$object = new \SwaggerGen\Swagger\Swagger();
678
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
679
680
		$this->expectException('\SwaggerGen\Exception', "Missing security name");
681
		$path = $object->handleCommand('security');
0 ignored issues
show
Unused Code introduced by
$path is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
682
	}
683
684
	/**
685
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
686
	 */
687
	public function testHandleCommand_Security_MissingType()
688
	{
689
		$object = new \SwaggerGen\Swagger\Swagger();
690
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
691
692
		$this->expectException('\SwaggerGen\Exception', "Missing security type");
693
		$path = $object->handleCommand('security', 'foo');
0 ignored issues
show
Unused Code introduced by
$path is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
694
	}
695
696
	/**
697
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
698
	 */
699
	public function testHandleCommand_Security_BadType()
700
	{
701
		$object = new \SwaggerGen\Swagger\Swagger();
702
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
703
704
		$this->expectException('\SwaggerGen\Exception', "Security scheme type must be either 'basic', 'apiKey' or 'oauth2', not 'bad'");
705
		$path = $object->handleCommand('security', 'foo bad');
0 ignored issues
show
Unused Code introduced by
$path is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
706
	}
707
708
	/**
709
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
710
	 */
711
	public function testHandleCommand_Security()
712
	{
713
		$object = new \SwaggerGen\Swagger\Swagger();
714
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
715
716
		$security = $object->handleCommand('security', 'foo basic');
717
		$this->assertInstanceOf('\SwaggerGen\Swagger\SecurityScheme', $security);
718
719
		$path = $object->handleCommand('endpoint');
720
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
721
722
		$this->assertSame(array(
723
			'swagger' => '2.0',
724
			'info' => array(
725
				'title' => 'undefined',
726
				'version' => '0',
727
			),
728
			'paths' => array(
729
				'/' => array(),
730
			),
731
			'securityDefinitions' => array(
732
				'foo' => array(
733
					'type' => 'basic',
734
				),
735
			),
736
				), $object->toArray());
737
	}
738
739
	/**
740
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
741
	 */
742
	public function testHandleCommand_Require_Empty()
743
	{
744
		$object = new \SwaggerGen\Swagger\Swagger();
745
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
746
747
		$this->expectException('\SwaggerGen\Exception', "Missing require name");
748
		$object->handleCommand('require');
749
	}
750
751
	/**
752
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
753
	 */
754
	public function testHandleCommand_Require_Undefined()
755
	{
756
		$object = new \SwaggerGen\Swagger\Swagger();
757
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
758
759
		$return = $object->handleCommand('require', 'foo');
760
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
761
762
		$path = $object->handleCommand('endpoint');
763
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
764
765
		$this->expectException('\SwaggerGen\Exception', "Required security scheme not defined: 'foo'");
766
		$object->toArray();
767
	}
768
769
	/**
770
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
771
	 */
772
	public function testHandleCommand_Require()
773
	{
774
		$object = new \SwaggerGen\Swagger\Swagger();
775
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
776
777
		$return = $object->handleCommand('require', 'foo');
778
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $return);
779
780
		$security = $object->handleCommand('security', 'foo basic');
781
		$this->assertInstanceOf('\SwaggerGen\Swagger\SecurityScheme', $security);
782
783
		$path = $object->handleCommand('endpoint');
784
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
785
786
		$this->assertEquals(array(
787
			'swagger' => '2.0',
788
			'info' => array(
789
				'title' => 'undefined',
790
				'version' => '0',
791
			),
792
			'paths' => array(
793
				'/' => array(),
794
			),
795
			'securityDefinitions' => array(
796
				'foo' => array(
797
					'type' => 'basic',
798
				),
799
			),
800
			'security' => array(
801
				array(
802
					'foo' => array(),
803
				),
804
			),
805
				), $object->toArray());
806
	}
807
808
	/**
809
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
810
	 */
811
	public function testHandleCommand_Definition_Empty()
812
	{
813
		$object = new \SwaggerGen\Swagger\Swagger();
814
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
815
816
		$this->expectException('\SwaggerGen\Exception', "Missing definition name");
817
		$object->handleCommand('definition');
818
	}
819
820
	/**
821
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
822
	 */
823
	public function testHandleCommand_Definition_NoName()
824
	{
825
		$object = new \SwaggerGen\Swagger\Swagger();
826
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
827
828
		$this->expectException('\SwaggerGen\Exception', "Missing definition name");
829
		$object->handleCommand('definition', '');
830
	}
831
832
	/**
833
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
834
	 */
835
	public function testHandleCommand_Definition()
836
	{
837
		$object = new \SwaggerGen\Swagger\Swagger();
838
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
839
840
		$schema = $object->handleCommand('definition', 'foo');
841
		$this->assertInstanceOf('\SwaggerGen\Swagger\Schema', $schema);
842
843
844
		$path = $object->handleCommand('endpoint');
845
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
846
847
		$this->assertSame(array(
848
			'swagger' => '2.0',
849
			'info' => array(
850
				'title' => 'undefined',
851
				'version' => '0',
852
			),
853
			'paths' => array(
854
				'/' => array(),
855
			),
856
			'definitions' => array(
857
				'foo' => array(
858
					'type' => 'object',
859
				),
860
			),
861
				), $object->toArray());
862
	}
863
864
	/**
865
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
866
	 */
867
	public function testHandleCommand_Definition_ReadOnly()
868
	{
869
		$object = new \SwaggerGen\Swagger\Swagger();
870
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
871
872
		$schema = $object->handleCommand('definition!', 'foo');
873
		$this->assertInstanceOf('\SwaggerGen\Swagger\Schema', $schema);
874
875
876
		$path = $object->handleCommand('endpoint');
877
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
878
879
		$this->assertSame(array(
880
			'swagger' => '2.0',
881
			'info' => array(
882
				'title' => 'undefined',
883
				'version' => '0',
884
			),
885
			'paths' => array(
886
				'/' => array(),
887
			),
888
			'definitions' => array(
889
				'foo' => array(
890
					'type' => 'object',
891
					'readOnly' => true,
892
				),
893
			),
894
				), $object->toArray());
895
	}
896
897
	/**
898
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
899
	 */
900
	public function testHandleCommand_Model()
901
	{
902
		$object = new \SwaggerGen\Swagger\Swagger();
903
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
904
905
		$schema = $object->handleCommand('model', 'foo');
906
		$this->assertInstanceOf('\SwaggerGen\Swagger\Schema', $schema);
907
908
		$path = $object->handleCommand('endpoint');
909
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
910
911
		$this->assertSame(array(
912
			'swagger' => '2.0',
913
			'info' => array(
914
				'title' => 'undefined',
915
				'version' => '0',
916
			),
917
			'paths' => array(
918
				'/' => array(),
919
			),
920
			'definitions' => array(
921
				'foo' => array(
922
					'type' => 'object',
923
				),
924
			),
925
				), $object->toArray());
926
	}
927
928
	/**
929
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
930
	 */
931
	public function testHandleCommand_Model_ReadOnly()
932
	{
933
		$object = new \SwaggerGen\Swagger\Swagger();
934
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
935
936
		$schema = $object->handleCommand('model!', 'foo');
937
		$this->assertInstanceOf('\SwaggerGen\Swagger\Schema', $schema);
938
939
		$path = $object->handleCommand('endpoint');
940
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
941
942
		$this->assertSame(array(
943
			'swagger' => '2.0',
944
			'info' => array(
945
				'title' => 'undefined',
946
				'version' => '0',
947
			),
948
			'paths' => array(
949
				'/' => array(),
950
			),
951
			'definitions' => array(
952
				'foo' => array(
953
					'type' => 'object',
954
					'readOnly' => true,					
955
				),
956
			),
957
				), $object->toArray());
958
	}
959
960
	/**
961
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
962
	 */
963
	public function testHandleCommand_Response_NoType()
964
	{
965
		$object = new \SwaggerGen\Swagger\Swagger();
966
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
967
968
		$this->expectException('\SwaggerGen\Exception', "Response definition missing description");
969
		$response = $object->handleCommand('response', 'NotFound');
0 ignored issues
show
Unused Code introduced by
$response is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
970
	}
971
972
	/**
973
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
974
	 */
975
	public function testHandleCommand_Response_NoDescription()
976
	{
977
		$object = new \SwaggerGen\Swagger\Swagger();
978
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
979
980
		$this->expectException('\SwaggerGen\Exception', "Response definition missing description");
981
		$response = $object->handleCommand('response', 'NotFound null');
0 ignored issues
show
Unused Code introduced by
$response is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
982
	}
983
984
	/**
985
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
986
	 */
987
	public function testHandleCommand_Response_WithoutDefinition()
988
	{
989
		$object = new \SwaggerGen\Swagger\Swagger();
990
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
991
992
		$response = $object->handleCommand('response', 'NotFound null Entity not found');
993
		$this->assertInstanceOf('\SwaggerGen\Swagger\Response', $response);
994
995
		$path = $object->handleCommand('endpoint');
996
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
997
998
		$this->assertSame(array(
999
			'swagger' => '2.0',
1000
			'info' => array(
1001
				'title' => 'undefined',
1002
				'version' => '0',
1003
			),
1004
			'paths' => array(
1005
				'/' => array(),
1006
			),
1007
			'responses' => array(
1008
				'NotFound' => array(
1009
					'description' => 'Entity not found',
1010
				),
1011
			),
1012
				), $object->toArray());
1013
	}
1014
1015
	/**
1016
	 * @covers \SwaggerGen\Swagger\Swagger::__construct
1017
	 */
1018
	public function testHandleCommand_Response_WithDefinition()
1019
	{
1020
		$object = new \SwaggerGen\Swagger\Swagger();
1021
		$this->assertInstanceOf('\SwaggerGen\Swagger\Swagger', $object);
1022
1023
		$response = $object->handleCommand('response', 'NotFound int Entity not found');
1024
		$this->assertInstanceOf('\SwaggerGen\Swagger\Response', $response);
1025
1026
		$path = $object->handleCommand('endpoint');
1027
		$this->assertInstanceOf('\SwaggerGen\Swagger\Path', $path);
1028
1029
		$this->assertSame(array(
1030
			'swagger' => '2.0',
1031
			'info' => array(
1032
				'title' => 'undefined',
1033
				'version' => '0',
1034
			),
1035
			'paths' => array(
1036
				'/' => array(),
1037
			),
1038
			'responses' => array(
1039
				'NotFound' => array(
1040
					'description' => 'Entity not found',
1041
					'schema' => array(
1042
						'type' => 'integer',
1043
						'format' => 'int32'
1044
					),
1045
				),
1046
			),
1047
				), $object->toArray());
1048
	}
1049
1050
}
1051