summaryrefslogtreecommitdiff
path: root/scripts/dev/generate-phpt.phar
blob: c6268c0af3814be15272e90e705a432000cf2328 (plain)
ofshex dumpascii
0000 3c 3f 70 68 70 0a 50 68 61 72 3a 3a 6d 61 70 50 68 61 72 28 27 67 65 6e 65 72 61 74 65 2d 70 68 <?php.Phar::mapPhar('generate-ph
0020 70 74 2e 70 68 61 72 27 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 67 65 6e 65 72 pt.phar');.require.'phar://gener
0040 61 74 65 2d 70 68 70 74 2e 70 68 61 72 2f 67 65 6e 65 72 61 74 65 2d 70 68 70 74 2e 70 68 70 27 ate-phpt.phar/generate-phpt.php'
0060 3b 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 0a 0d 00 00 3a 00 00 ;.__HALT_COMPILER();.?>......:..
0080 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 11 00 00 00 67 65 6e 65 72 61 74 65 2d 70 68 70 74 ...................generate-phpt
00a0 2e 70 68 70 35 0b 00 00 a5 9e 02 4a 35 0b 00 00 c1 3b da f3 b6 01 00 00 00 00 00 00 0e 00 00 00 .php5......J5....;..............
00c0 67 74 46 75 6e 63 74 69 6f 6e 2e 70 68 70 9f 03 00 00 a5 9e 02 4a 9f 03 00 00 65 ec 47 68 b6 01 gtFunction.php.......J....e.Gh..
00e0 00 00 00 00 00 00 0a 00 00 00 67 74 54 65 78 74 2e 70 68 70 aa 01 00 00 a5 9e 02 4a aa 01 00 00 ..........gtText.php.......J....
0100 a1 d3 59 a4 b6 01 00 00 00 00 00 00 0e 00 00 00 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 ff 09 ..Y.............gtClassMap.php..
0120 00 00 a5 9e 02 4a ff 09 00 00 42 fc c1 b4 b6 01 00 00 00 00 00 00 17 00 00 00 74 65 78 74 73 2f .....J....B...............texts/
0140 75 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 2e 74 78 74 6c 00 00 00 a5 9e 02 4a 6c 00 00 00 e9 32 8b unknownMethod.txtl......Jl....2.
0160 5f b6 01 00 00 00 00 00 00 16 00 00 00 74 65 78 74 73 2f 75 6e 6b 6e 6f 77 6e 43 6c 61 73 73 2e _............texts/unknownClass.
0180 74 78 74 69 00 00 00 a5 9e 02 4a 69 00 00 00 6f ea 70 8c b6 01 00 00 00 00 00 00 1e 00 00 00 74 txti......Ji...o.p.............t
01a0 65 78 74 73 2f 74 65 73 74 54 79 70 65 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 74 32 00 00 exts/testTypeNotSpecified.txt2..
01c0 00 a5 9e 02 4a 32 00 00 00 ec 3f 94 1f b6 01 00 00 00 00 00 00 0e 00 00 00 74 65 78 74 73 2f 68 ....J2....?..............texts/h
01e0 65 6c 70 2e 74 78 74 3f 03 00 00 a5 9e 02 4a 3f 03 00 00 6f 04 8f 92 b6 01 00 00 00 00 00 00 1c elp.txt?......J?...o............
0200 00 00 00 74 65 78 74 73 2f 6d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 74 63 ...texts/methodNotSpecified.txtc
0220 00 00 00 a5 9e 02 4a 63 00 00 00 01 2a 80 6c b6 01 00 00 00 00 00 00 26 00 00 00 74 65 78 74 73 ......Jc....*.l........&...texts
0240 2f 66 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 /functionOrMethodNotSpecified.tx
0260 74 38 00 00 00 a5 9e 02 4a 38 00 00 00 14 a2 81 ab b6 01 00 00 00 00 00 00 19 00 00 00 74 65 78 t8......J8...................tex
0280 74 73 2f 75 6e 6b 6e 6f 77 6e 46 75 6e 63 74 69 6f 6e 2e 74 78 74 72 00 00 00 a5 9e 02 4a 72 00 ts/unknownFunction.txtr......Jr.
02a0 00 00 13 1c c8 99 b6 01 00 00 00 00 00 00 11 00 00 00 67 74 43 6f 64 65 53 6e 69 70 70 65 74 2e ..................gtCodeSnippet.
02c0 70 68 70 71 05 00 00 a5 9e 02 4a 71 05 00 00 d7 3e e3 31 b6 01 00 00 00 00 00 00 0e 00 00 00 67 phpq......Jq....>.1............g
02e0 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 37 04 00 00 a5 9e 02 4a 37 04 00 00 c1 8a 06 cb b6 01 00 tAutoload.php7......J7..........
0300 00 00 00 00 00 1e 00 00 00 73 65 74 75 70 2f 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 .........setup/gtCommandLineOpti
0320 6f 6e 73 2e 70 68 70 29 07 00 00 a5 9e 02 4a 29 07 00 00 f6 da 7b eb b6 01 00 00 00 00 00 00 29 ons.php)......J).....{.........)
0340 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 ...setup/preconditions/gtIsValid
0360 46 75 6e 63 74 69 6f 6e 2e 70 68 70 df 01 00 00 a5 9e 02 4a df 01 00 00 c8 ef fc 74 b6 01 00 00 Function.php.......J.......t....
0380 00 00 00 00 2d 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 ....-...setup/preconditions/gtIs
03a0 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 2e 70 68 70 70 01 00 00 a5 9e 02 4a 70 01 00 SpecifiedTestType.phpp......Jp..
03c0 00 3f a9 53 dc b6 01 00 00 00 00 00 00 2a 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 .?.S.........*...setup/precondit
03e0 69 6f 6e 73 2f 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 2e 70 68 70 90 01 00 00 a5 ions/gtIfClassHasMethod.php.....
0400 9e 02 4a 90 01 00 00 35 81 0a 09 b6 01 00 00 00 00 00 00 35 00 00 00 73 65 74 75 70 2f 70 72 65 ..J....5...........5...setup/pre
0420 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e conditions/gtIsSpecifiedFunction
0440 4f 72 4d 65 74 68 6f 64 2e 70 68 70 7f 01 00 00 a5 9e 02 4a 7f 01 00 00 0d 6d ea 03 b6 01 00 00 OrMethod.php.......J.....m......
0460 00 00 00 00 27 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 ....'...setup/preconditions/gtIs
0480 56 61 6c 69 64 4d 65 74 68 6f 64 2e 70 68 70 32 02 00 00 a5 9e 02 4a 32 02 00 00 b7 8a d0 1b b6 ValidMethod.php2......J2........
04a0 01 00 00 00 00 00 00 26 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 .......&...setup/preconditions/g
04c0 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e 70 68 70 ac 01 00 00 a5 9e 02 4a ac 01 00 00 db a7 71 tIsValidClass.php.......J......q
04e0 b7 b6 01 00 00 00 00 00 00 1c 00 00 00 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f .............setup/gtPreConditio
0500 6e 4c 69 73 74 2e 70 68 70 72 02 00 00 a5 9e 02 4a 72 02 00 00 1d a3 fb 49 b6 01 00 00 00 00 00 nList.phpr......Jr......I.......
0520 00 1c 00 00 00 73 65 74 75 70 2f 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2e 70 68 .....setup/gtOptionalSections.ph
0540 70 81 06 00 00 a5 9e 02 4a 81 06 00 00 91 61 3f d0 b6 01 00 00 00 00 00 00 2f 00 00 00 73 65 74 p.......J.....a?........./...set
0560 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 up/exceptions/gtMissingArgumentE
0580 78 63 65 70 74 69 6f 6e 2e 70 68 70 4f 00 00 00 a5 9e 02 4a 4f 00 00 00 c2 b4 9f 6b b6 01 00 00 xception.phpO......JO......k....
05a0 00 00 00 00 2e 00 00 00 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e 6f ........setup/exceptions/gtUnkno
05c0 77 6e 53 65 63 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 4a 00 00 00 a5 9e 02 4a 4a 00 wnSectionException.phpJ......JJ.
05e0 00 00 b0 06 85 00 b6 01 00 00 00 00 00 00 2d 00 00 00 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f ..............-...setup/exceptio
0600 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 4d ns/gtUnknownOptionException.phpM
0620 00 00 00 a5 9e 02 4a 4d 00 00 00 9b aa 79 cb b6 01 00 00 00 00 00 00 2e 00 00 00 73 65 74 75 70 ......JM.....y.............setup
0640 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 /exceptions/gtMissingOptionsExce
0660 70 74 69 6f 6e 2e 70 68 70 4c 00 00 00 a5 9e 02 4a 4c 00 00 00 39 ef 6f 1c b6 01 00 00 00 00 00 ption.phpL......JL...9.o........
0680 00 18 00 00 00 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 b4 00 00 .....setup/gtPreCondition.php...
06a0 00 a5 9e 02 4a b4 00 00 00 11 41 79 ab b6 01 00 00 00 00 00 00 14 00 00 00 67 74 54 65 73 74 43 ....J.....Ay.............gtTestC
06c0 61 73 65 57 72 69 74 65 72 2e 70 68 70 da 01 00 00 a5 9e 02 4a da 01 00 00 c3 8b 68 53 b6 01 00 aseWriter.php.......J......hS...
06e0 00 00 00 00 00 0c 00 00 00 67 74 4d 65 74 68 6f 64 2e 70 68 70 9b 0c 00 00 a5 9e 02 4a 9b 0c 00 .........gtMethod.php.......J...
0700 00 67 a5 b8 8b b6 01 00 00 00 00 00 00 1b 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 63 6f .g...............codeSnippets/co
0720 6d 6d 65 6e 74 45 6e 64 2e 74 78 74 06 00 00 00 a5 9e 02 4a 06 00 00 00 c5 c4 55 ae b6 01 00 00 mmentEnd.txt.......J......U.....
0740 00 00 00 00 1a 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 77 69 6e 2e 74 ........codeSnippets/skipifwin.t
0760 78 74 57 00 00 00 a5 9e 02 4a 57 00 00 00 3f 80 99 12 b6 01 00 00 00 00 00 00 1d 00 00 00 63 6f xtW......JW...?...............co
0780 64 65 53 6e 69 70 70 65 74 73 2f 63 6f 6d 6d 65 6e 74 53 74 61 72 74 2e 74 78 74 06 00 00 00 a5 deSnippets/commentStart.txt.....
07a0 9e 02 4a 06 00 00 00 1d 06 6e 40 b6 01 00 00 00 00 00 00 16 00 00 00 63 6f 64 65 53 6e 69 70 70 ..J......n@............codeSnipp
07c0 65 74 73 2f 66 6c 6f 61 74 2e 74 78 74 c6 00 00 00 a5 9e 02 4a c6 00 00 00 14 43 30 f8 b6 01 00 ets/float.txt.......J.....C0....
07e0 00 00 00 00 00 17 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 74 72 69 6e 67 2e 74 78 74 .........codeSnippets/string.txt
0800 b4 00 00 00 a5 9e 02 4a b4 00 00 00 06 31 cb e8 b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 65 .......J.....1..............code
0820 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 53 74 61 72 74 2e 74 78 74 26 00 00 00 a5 9e 02 4a 26 00 Snippets/loopStart.txt&......J&.
0840 00 00 b0 dc ca 95 b6 01 00 00 00 00 00 00 1d 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 ..................codeSnippets/s
0860 6b 69 70 69 66 6e 6f 74 77 69 6e 2e 74 78 74 58 00 00 00 a5 9e 02 4a 58 00 00 00 a6 35 59 6e b6 kipifnotwin.txtX......JX....5Yn.
0880 01 00 00 00 00 00 00 16 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 61 72 72 61 79 2e 74 78 ...........codeSnippets/array.tx
08a0 74 15 01 00 00 a5 9e 02 4a 15 01 00 00 85 47 a3 4a b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 t.......J.....G.J............cod
08c0 65 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 43 6c 6f 73 65 2e 74 78 74 01 00 00 00 a5 9e 02 4a 01 eSnippets/loopClose.txt.......J.
08e0 00 00 00 0c e2 b6 fc b6 01 00 00 00 00 00 00 18 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f ...................codeSnippets/
0900 62 6f 6f 6c 65 61 6e 2e 74 78 74 8f 00 00 00 a5 9e 02 4a 8f 00 00 00 7f c5 3f e6 b6 01 00 00 00 boolean.txt.......J......?......
0920 00 00 00 1d 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 6e 6f 74 36 34 62 .......codeSnippets/skipifnot64b
0940 2e 74 78 74 4a 00 00 00 a5 9e 02 4a 4a 00 00 00 16 d6 70 c5 b6 01 00 00 00 00 00 00 19 00 00 00 .txtJ......JJ.....p.............
0960 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 36 34 62 74 78 74 4a 00 00 00 a5 9e 02 codeSnippets/skipif64btxtJ......
0980 4a 4a 00 00 00 7c b4 22 cb b6 01 00 00 00 00 00 00 24 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 JJ...|.".........$...codeSnippet
09a0 73 2f 65 6d 70 74 79 55 6e 73 65 74 55 6e 64 65 66 4e 75 6c 6c 2e 74 78 74 f6 00 00 00 a5 9e 02 s/emptyUnsetUndefNull.txt.......
09c0 4a f6 00 00 00 21 f7 8c 0e b6 01 00 00 00 00 00 00 17 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 J....!...............codeSnippet
09e0 73 2f 6f 62 6a 65 63 74 2e 74 78 74 59 02 00 00 a5 9e 02 4a 59 02 00 00 fb 05 82 7c b6 01 00 00 s/object.txtY......JY......|....
0a00 00 00 00 00 14 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 69 6e 74 2e 74 78 74 7a 00 00 00 ........codeSnippets/int.txtz...
0a20 a5 9e 02 4a 7a 00 00 00 9f 08 e8 42 b6 01 00 00 00 00 00 00 11 00 00 00 67 74 54 65 73 74 53 75 ...Jz......B............gtTestSu
0a40 62 6a 65 63 74 2e 70 68 70 11 11 00 00 a5 9e 02 4a 11 11 00 00 50 b3 02 65 b6 01 00 00 00 00 00 bject.php.......J....P..e.......
0a60 00 27 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e .'...testcase/gtVariationContain
0a80 65 72 4d 65 74 68 6f 64 2e 70 68 70 33 04 00 00 a5 9e 02 4a 33 04 00 00 ea 1c 1a 78 b6 01 00 00 erMethod.php3......J3......x....
0aa0 00 00 00 00 22 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 ...."...testcase/gtBasicTestCase
0ac0 4d 65 74 68 6f 64 2e 70 68 70 e1 04 00 00 a5 9e 02 4a e1 04 00 00 f6 4f 87 13 b6 01 00 00 00 00 Method.php.......J.....O........
0ae0 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 2e 70 ......testcase/gtErrorTestCase.p
0b00 68 70 c8 04 00 00 a5 9e 02 4a c8 04 00 00 c5 00 d8 f1 b6 01 00 00 00 00 00 00 17 00 00 00 74 65 hp.......J....................te
0b20 73 74 63 61 73 65 2f 67 74 54 65 73 74 43 61 73 65 2e 70 68 70 bc 12 00 00 a5 9e 02 4a bc 12 00 stcase/gtTestCase.php.......J...
0b40 00 b8 ca 22 40 b6 01 00 00 00 00 00 00 24 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 ..."@........$...testcase/gtBasi
0b60 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 48 05 00 00 a5 9e 02 4a 48 05 00 cTestCaseFunction.phpH......JH..
0b80 00 78 a4 25 a2 b6 01 00 00 00 00 00 00 24 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f .x.%.........$...testcase/gtErro
0ba0 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 a1 05 00 00 a5 9e 02 4a a1 05 00 rTestCaseFunction.php.......J...
0bc0 00 d8 31 a8 01 b6 01 00 00 00 00 00 00 28 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 ..1..........(...testcase/gtVari
0be0 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 b0 06 00 00 a5 9e 02 ationTestCaseFunction.php.......
0c00 4a b0 06 00 00 d1 35 5f b5 b6 01 00 00 00 00 00 00 29 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 J.....5_.........)...testcase/gt
0c20 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 2e 70 68 70 3b 04 VariationContainerFunction.php;.
0c40 00 00 a5 9e 02 4a 3b 04 00 00 de c3 cd 61 b6 01 00 00 00 00 00 00 22 00 00 00 74 65 73 74 63 61 .....J;......a........"...testca
0c60 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 cd 05 00 00 se/gtErrorTestCaseMethod.php....
0c80 a5 9e 02 4a cd 05 00 00 82 c8 f1 22 b6 01 00 00 00 00 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 ...J......."............testcase
0ca0 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 2e 70 68 70 75 03 00 00 a5 9e 02 4a 75 03 00 00 /gtBasicTestCase.phpu......Ju...
0cc0 8a 55 4b 25 b6 01 00 00 00 00 00 00 21 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 .UK%........!...testcase/gtVaria
0ce0 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 2e 70 68 70 87 04 00 00 a5 9e 02 4a 87 04 00 00 28 3d c1 tionContainer.php.......J....(=.
0d00 3b b6 01 00 00 00 00 00 00 20 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f ;............testcase/gtVariatio
0d20 6e 54 65 73 74 43 61 73 65 2e 70 68 70 ea 05 00 00 a5 9e 02 4a ea 05 00 00 fb cd c5 43 b6 01 00 nTestCase.php.......J.......C...
0d40 00 00 00 00 00 26 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 .....&...testcase/gtVariationTes
0d60 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 26 07 00 00 a5 9e 02 4a 26 07 00 00 fe 9d 6a 5c b6 tCaseMethod.php&......J&.....j\.
0d80 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 4d 61 69 6e 20 63 6f 64 65 20 66 6f .......<?php./**..*.Main.code.fo
0da0 72 20 74 65 73 74 20 63 61 73 65 20 67 65 6e 65 72 61 74 69 6f 6e 0a 20 2a 2f 0a 0a 72 65 71 75 r.test.case.generation..*/..requ
0dc0 69 72 65 5f 6f 6e 63 65 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 67 ire_once.dirname(__FILE__)...'/g
0de0 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 27 3b 0a 0a 2f 2f 56 65 72 73 69 6f 6e 20 63 68 65 63 6b tAutoload.php';..//Version.check
0e00 2e 20 57 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 6f 6e 20 6c 65 73 73 20 74 68 61 6e 20 50 48 50 35 ..Will.not.run.on.less.than.PHP5
0e20 33 3b 0a 0a 6c 69 73 74 28 24 6d 61 6a 6f 72 2c 20 24 6d 69 6e 6f 72 2c 20 24 62 75 67 29 20 3d 3;..list($major,.$minor,.$bug).=
0e40 20 65 78 70 6c 6f 64 65 28 22 2e 22 2c 20 70 68 70 76 65 72 73 69 6f 6e 28 29 2c 20 33 29 3b 0a .explode(".",.phpversion(),.3);.
0e60 20 69 66 28 24 6d 61 6a 6f 72 20 3d 3d 20 35 29 20 7b 0a 20 20 20 20 20 20 20 69 66 28 24 6d 69 .if($major.==.5).{........if($mi
0e80 6e 6f 72 20 3c 20 33 29 20 7b 20 64 69 65 28 22 53 6f 72 72 79 2c 20 79 6f 75 20 6e 65 65 64 20 nor.<.3).{.die("Sorry,.you.need.
0ea0 50 48 50 20 76 65 72 73 69 6f 6e 20 35 2e 33 20 6f 72 20 67 72 65 61 74 65 72 20 74 6f 20 72 75 PHP.version.5.3.or.greater.to.ru
0ec0 6e 20 74 68 69 73 2e 5c 6e 22 29 3b 20 7d 0a 20 20 20 7d 0a 20 20 20 69 66 20 28 24 6d 61 6a 6f n.this.\n");.}....}....if.($majo
0ee0 72 20 3c 20 35 29 20 7b 20 64 69 65 20 28 22 53 65 72 69 6f 75 73 6c 79 2c 20 79 6f 75 20 6e 65 r.<.5).{.die.("Seriously,.you.ne
0f00 65 64 20 74 6f 20 75 70 67 72 61 64 65 20 79 6f 75 20 50 48 50 20 6c 65 76 65 6c 5c 6e 22 29 3b ed.to.upgrade.you.PHP.level\n");
0f20 20 7d 0a 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 6e 65 77 20 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e .}...$options.=.new.gtCommandLin
0f40 65 4f 70 74 69 6f 6e 73 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 eOptions();.$optionalSections.=.
0f60 6e 65 77 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 28 29 3b 0a 0a 74 72 79 7b 0a new.gtOptionalSections();..try{.
0f80 20 20 24 6f 70 74 69 6f 6e 73 2d 3e 70 61 72 73 65 28 24 61 72 67 76 29 3b 0a 7d 20 63 61 74 63 ..$options->parse($argv);.}.catc
0fa0 68 20 28 65 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 20 20 65 63 68 6f 20 24 65 2d 3e 67 65 h.(exception.$e).{...echo.$e->ge
0fc0 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 22 3b 0a 20 20 64 69 65 28 29 3b 0a 7d 0a 0a 69 66 28 tMessage()."\n";...die();.}..if(
0fe0 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 68 27 29 29 20 7b 0a 20 20 64 69 $options->hasOption('h')).{...di
1000 65 28 67 74 54 65 78 74 3a 3a 67 65 74 28 27 68 65 6c 70 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b e(gtText::get('help'));.}..try.{
1020 0a 20 20 24 70 72 65 43 6f 6e 64 69 74 69 6f 6e 73 20 3d 20 6e 65 77 20 67 74 50 72 65 43 6f 6e ...$preConditions.=.new.gtPreCon
1040 64 69 74 69 6f 6e 4c 69 73 74 28 29 3b 0a 20 20 24 70 72 65 43 6f 6e 64 69 74 69 6f 6e 73 2d 3e ditionList();...$preConditions->
1060 63 68 65 63 6b 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 65 78 63 65 70 74 check($options);.}.catch.(except
1080 69 6f 6e 20 24 65 29 20 7b 0a 20 20 65 63 68 6f 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 ion.$e).{...echo.$e->getMessage(
10a0 29 2e 22 5c 6e 22 3b 0a 20 20 64 69 65 28 29 3b 0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d )."\n";...die();.}..if($options-
10c0 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27 29 29 20 7b 0a 20 20 24 6f 70 74 69 6f 6e 61 6c 53 65 >hasOption('s')).{...$optionalSe
10e0 63 74 69 6f 6e 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a ctions->setOptions($options);.}.
1100 20 20 0a 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 .....if($options->hasOption('c')
1120 29 20 7b 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f ).{...$name.=.$options->getOptio
1140 6e 28 27 63 27 29 2e 22 5f 22 2e 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 n('c')."_".$options->getOption('
1160 6d 27 29 3b 0a 20 20 24 6d 65 74 68 6f 64 20 3d 20 6e 65 77 20 67 74 4d 65 74 68 6f 64 28 24 6f m');...$method.=.new.gtMethod($o
1180 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 27 29 2c 20 24 6f 70 74 69 6f 6e 73 ptions->getOption('c'),.$options
11a0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 27 29 29 3b 0a 20 20 0a 20 20 24 6d 65 74 68 6f 64 2d ->getOption('m'));......$method-
11c0 3e 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e >setArgumentNames();...$method->
11e0 73 65 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 setArgumentLists();...$method->s
1200 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 etInitialisationStatements();...
1220 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 ...$method->setConstructorArgume
1240 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 65 74 43 6f 6e 73 74 72 75 ntNames();...$method->setConstru
1260 63 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d ctorInitStatements();...$method-
1280 3e 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 7d >setConstructorArgumentList();.}
12a0 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 29 20 7b ..if($options->hasOption('f')).{
12c0 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 ...$name.=.$options->getOption('
12e0 66 27 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 20 3d 20 6e 65 77 20 67 74 46 75 6e 63 74 69 6f f');...$function.=.new.gtFunctio
1300 6e 28 24 6e 61 6d 65 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 n($name);...$function->setArgume
1320 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d ntNames();...$function->setArgum
1340 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 49 6e 69 74 entLists();...$function->setInit
1360 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 7d 0a 0a 0a 69 66 28 24 ialisationStatements();.}...if($
1380 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 62 27 29 29 20 7b 0a 20 20 69 66 28 options->hasOption('b')).{...if(
13a0 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 20 $options->hasOption('c')).{.....
13c0 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 3a 3a 67 65 74 $testCase.=.gtBasicTestCase::get
13e0 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d 65 74 Instance($optionalSections,.'met
1400 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 4d 65 74 68 6f 64 28 hod');.....$testCase->setMethod(
1420 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 $method);...}.else.{.....$testCa
1440 73 65 20 3d 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 se.=.gtBasicTestCase::getInstanc
1460 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 24 74 65 73 74 43 e($optionalSections);.....$testC
1480 61 73 65 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a 20 20 7d ase->setFunction($function);...}
14a0 0a 0a 20 20 24 74 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 ....$testCase->constructTestCase
14c0 28 29 3b 0a 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 3a 3a 77 72 69 74 65 28 24 6e ();...gtTestCaseWriter::write($n
14e0 61 6d 65 2c 20 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2c 20 27 62 27 29 ame,.$testCase->toString(),.'b')
1500 3b 0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 65 27 29 ;.}..if($options->hasOption('e')
1520 29 20 7b 0a 20 20 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 ).{...if($options->hasOption('c'
1540 29 29 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 45 72 72 6f 72 54 65 73 74 )).{.....$testCase.=.gtErrorTest
1560 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 Case::getInstance($optionalSecti
1580 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 ons,.'method');.....$testCase->s
15a0 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 etMethod($method);...}.else.{...
15c0 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 3a 3a 67 ..$testCase.=.gtErrorTestCase::g
15e0 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 etInstance($optionalSections);..
1600 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 ...$testCase->setFunction($funct
1620 69 6f 6e 29 3b 0a 20 20 7d 0a 0a 20 20 24 74 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 ion);...}....$testCase->construc
1640 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 3a tTestCase();...gtTestCaseWriter:
1660 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e :write($name,.$testCase->toStrin
1680 67 28 29 2c 20 27 65 27 29 3b 0a 7d 0a 0a 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 g(),.'e');.}....if($options->has
16a0 4f 70 74 69 6f 6e 28 27 76 27 29 29 20 7b 0a 20 20 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 Option('v')).{...if($options->ha
16c0 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e sOption('c')).{.....$testCaseCon
16e0 74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67 tainer.=.gtVariationContainer::g
1700 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d etInstance($optionalSections,.'m
1720 65 74 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 2d ethod');.....$testCaseContainer-
1740 3e 73 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a >setMethod($method);...}.else.{.
1760 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61 ....$testCaseContainer.=.gtVaria
1780 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 20 28 24 6f 70 74 tionContainer::getInstance.($opt
17a0 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e ionalSections);.....$testCaseCon
17c0 74 61 69 6e 65 72 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a tainer->setFunction($function);.
17e0 20 20 7d 0a 0a 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 2d 3e 63 6f 6e 73 74 ..}....$testCaseContainer->const
1800 72 75 63 74 41 6c 6c 28 29 3b 0a 0a 20 20 24 74 65 73 74 73 20 3d 20 24 74 65 73 74 43 61 73 65 ructAll();....$tests.=.$testCase
1820 43 6f 6e 74 61 69 6e 65 72 2d 3e 67 65 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 73 28 29 3b 0a Container->getVariationTests();.
1840 0a 20 20 24 63 6f 75 6e 74 20 3d 20 31 3b 0a 20 20 66 6f 72 65 61 63 68 28 24 74 65 73 74 73 20 ...$count.=.1;...foreach($tests.
1860 61 73 20 24 74 65 73 74 29 20 7b 0a 20 20 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 as.$test).{.....gtTestCaseWriter
1880 3a 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 74 65 73 74 2c 20 27 76 27 2c 20 24 63 6f 75 6e ::write($name,.$test,.'v',.$coun
18a0 74 29 3b 0a 20 20 20 20 24 63 6f 75 6e 74 2b 2b 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 0a 3c 3f 70 68 t);.....$count++;...}..}.?>.<?ph
18c0 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 72 65 70 65 72 65 73 65 6e 74 73 20 61 20 73 69 p../**..*.Class.reperesents.a.si
18e0 6e 67 6c 65 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 ngle.PHP.function...*..*/.class.
1900 67 74 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 53 75 62 6a 65 63 74 gtFunction.extends.gtTestSubject
1920 20 7b 0a 0a 20 20 70 72 69 76 61 74 65 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 0a .{....private.$functionName;....
1940 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e ../**....*.Set.the.name.of.the.n
1960 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 ame.of.the.function....*....*.@p
1980 61 72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 0a 20 20 20 2a 2f 0a aram.string.$functionName....*/.
19a0 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 ..public.function.__construct($f
19c0 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 20 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 66 75 6e 63 74 unctionName)..{.....$this->funct
19e0 69 6f 6e 4e 61 6d 65 20 3d 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a 20 ionName.=.$functionName;...}....
1a00 20 2f 2a 2a 0a 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 66 75 6e 63 74 ./**....*.Get.the.names.of.funct
1a20 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 73 65 20 6d 61 6e ion.arguments.and.initialise.man
1a40 64 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 61 72 72 datory.and.optional.argument.arr
1a60 61 79 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ays....*....*/...public.function
1a80 20 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 24 66 75 6e 63 74 .setArgumentNames().{.....$funct
1aa0 69 6f 6e 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 46 75 6e 63 74 69 6f 6e 28 24 74 68 69 ion=.new.ReflectionFunction($thi
1ac0 73 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 s->functionName);......foreach.(
1ae0 24 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 $function->getParameters().as.$i
1b00 20 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 20 20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e 69 .=>.$param).{.......if($param->i
1b20 73 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 sOptional()).{.........$this->op
1b40 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e tionalArgumentNames[].=.$param->
1b60 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 getName();.......}.else.{.......
1b80 20 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b ..$this->mandatoryArgumentNames[
1ba0 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 ].=.$param->getName();.......}..
1bc0 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 ...}...}...../**....*.Return.the
1be0 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 .name.of.the.function....*....*.
1c00 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 @return.string....*/...public.fu
1c20 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 nction.getName().{.....return.$t
1c40 68 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 his->functionName;...}..}.?><?ph
1c60 70 0a 0a 2f 2a 2a 0a 20 2a 20 47 65 74 20 61 20 74 65 78 74 20 6d 65 73 73 61 67 65 0a 20 2a 0a p../**..*.Get.a.text.message..*.
1c80 20 2a 2f 0a 63 6c 61 73 73 20 67 74 54 65 78 74 0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 47 .*/.class.gtText.{..../**....*.G
1ca0 65 74 20 74 68 65 20 74 65 78 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 75 72 6e 20 69 et.the.text.message.and.return.i
1cc0 74 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a t....*....*.@param.string.$name.
1ce0 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c ...*.@return.string....*/...publ
1d00 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 20 7b 0a ic.static.function.get($name).{.
1d20 20 20 20 20 24 66 69 6c 65 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f ....$filename.=.dirname(__FILE__
1d40 29 20 2e 20 27 2f 74 65 78 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a )...'/texts/'...$name...'.txt';.
1d60 0a 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 .....if.(!file_exists($filename)
1d80 29 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 ).{.......throw.new.LogicExcepti
1da0 6f 6e 28 27 54 68 65 20 74 65 78 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 64 6f 65 73 20 on('The.text.'...$name...'.does.
1dc0 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 66 not.exist');.....}......return.f
1de0 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 7d ile_get_contents($filename);...}
1e00 0a 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 24 67 74 43 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 .}..?><?php...$gtClassMap.=.arra
1e20 79 28 0a 20 0a 20 20 20 20 27 67 74 43 6f 64 65 53 6e 69 70 70 65 74 27 20 20 20 20 20 20 20 20 y(.......'gtCodeSnippet'........
1e40 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 43 6f 64 65 53 6e 69 70 70 65 74 2e 70 68 70 27 2c .........=>.'gtCodeSnippet.php',
1e60 0a 20 20 20 20 27 67 74 54 65 73 74 53 75 62 6a 65 63 74 27 20 20 20 20 20 20 20 20 20 20 20 20 .....'gtTestSubject'............
1e80 20 20 20 20 20 3d 3e 20 27 67 74 54 65 73 74 53 75 62 6a 65 63 74 2e 70 68 70 27 2c 0a 20 20 20 .....=>.'gtTestSubject.php',....
1ea0 20 27 67 74 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'gtFunction'...................
1ec0 20 3d 3e 20 27 67 74 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 65 74 .=>.'gtFunction.php',.....'gtMet
1ee0 68 6f 64 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 hod'......................=>.'gt
1f00 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 54 65 73 74 43 61 73 65 57 72 69 74 Method.php',.....'gtTestCaseWrit
1f20 65 72 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 54 65 73 74 43 61 73 65 57 er'..............=>.'gtTestCaseW
1f40 72 69 74 65 72 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 54 65 78 74 27 20 20 20 20 20 20 20 20 riter.php',.....'gtText'........
1f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 54 65 78 74 2e 70 68 70 27 2c ................=>.'gtText.php',
1f80 0a 20 0a 20 0a 20 0a 20 20 20 20 27 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 ...........'gtCommandLineOptions
1fa0 27 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 43 6f 6d 6d 61 6e 64 4c 69 '..........=>.'setup/gtCommandLi
1fc0 6e 65 4f 70 74 69 6f 6e 73 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4f 70 74 69 6f 6e 61 6c 53 neOptions.php',.....'gtOptionalS
1fe0 65 63 74 69 6f 6e 73 27 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 ections'............=>.'setup/gt
2000 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 69 OptionalSections.php',.....'gtMi
2020 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 27 20 20 20 20 3d 3e 20 27 73 ssingArgumentException'....=>.'s
2040 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e etup/exceptions/gtMissingArgumen
2060 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 55 6e 6b 6e 6f 77 6e 4f tException.php',.....'gtUnknownO
2080 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 ptionException'......=>.'setup/e
20a0 78 63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 xceptions/gtUnknownOptionExcepti
20c0 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 78 on.php',.....'gtUnknownSectionEx
20e0 63 65 70 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f ception'......=>.'setup/exceptio
2100 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ns/gtUnknownSectionException.php
2120 27 2c 0a 20 20 20 20 27 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f ',.....'gtMissingOptionsExceptio
2140 6e 27 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 n'.....=>.'setup/exceptions/gtMi
2160 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 20 ssingOptionsException.php',.....
2180 20 20 27 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..'gtPreCondition'..............
21a0 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 27 2c ..=>.'setup/gtPreCondition.php',
21c0 0a 20 20 20 20 27 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 4c 69 73 74 27 20 20 20 20 20 20 20 .....'gtPreConditionList'.......
21e0 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 4c 69 73 .....=>.'setup/gtPreConditionLis
2200 74 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 t.php',.....'gtIsSpecifiedTestTy
2220 70 65 27 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 pe'.........=>.'setup/preconditi
2240 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 2e 70 68 70 27 2c 0a ons/gtIsSpecifiedTestType.php',.
2260 20 20 20 20 27 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 20 ....'gtIfClassHasMethod'........
2280 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 66 ....=>.'setup/preconditions/gtIf
22a0 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 53 70 ClassHasMethod.php',.....'gtIsSp
22c0 65 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 27 20 3d 3e 20 27 73 65 74 ecifiedFunctionOrMethod'.=>.'set
22e0 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 46 75 up/preconditions/gtIsSpecifiedFu
2300 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56 61 nctionOrMethod.php',.....'gtIsVa
2320 6c 69 64 43 6c 61 73 73 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 lidClass'................=>.'set
2340 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e up/preconditions/gtIsValidClass.
2360 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 27 20 20 20 20 20 php',.....'gtIsValidMethod'.....
2380 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e ..........=>.'setup/precondition
23a0 73 2f 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 s/gtIsValidMethod.php',.....'gtI
23c0 73 56 61 6c 69 64 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 sValidFunction'.............=>.'
23e0 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 46 75 6e setup/preconditions/gtIsValidFun
2400 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 0a 20 20 20 20 20 27 67 74 54 65 73 74 43 61 73 65 ction.php',..........'gtTestCase
2420 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 '...................=>.'testcase
2440 2f 67 74 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 /gtTestCase.php',......'gtVariat
2460 69 6f 6e 54 65 73 74 43 61 73 65 27 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 ionTestCase'..........=>.'testca
2480 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 se/gtVariationTestCase.php',....
24a0 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 ..'gtVariationTestCaseFunction'.
24c0 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 .=>.'testcase/gtVariationTestCas
24e0 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f eFunction.php',......'gtVariatio
2500 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 nTestCaseMethod'....=>.'testcase
2520 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 27 2c /gtVariationTestCaseMethod.php',
2540 0a 20 0a 20 20 20 20 20 27 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 27 20 20 20 20 20 20 20 ........'gtBasicTestCase'.......
2560 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 .......=>.'testcase/gtBasicTestC
2580 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 46 ase.php',......'gtBasicTestCaseF
25a0 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 unction'......=>.'testcase/gtBas
25c0 69 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 icTestCaseFunction.php',......'g
25e0 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 20 3d 3e 20 tBasicTestCaseMethod'........=>.
2600 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 'testcase/gtBasicTestCaseMethod.
2620 70 68 70 27 2c 0a 20 0a 20 20 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 27 20 20 php',........'gtErrorTestCase'..
2640 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 ............=>.'testcase/gtError
2660 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 TestCase.php',......'gtErrorTest
2680 43 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f CaseFunction'......=>.'testcase/
26a0 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 gtErrorTestCaseFunction.php',...
26c0 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 20 20 ...'gtErrorTestCaseMethod'......
26e0 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 ..=>.'testcase/gtErrorTestCaseMe
2700 74 68 6f 64 2e 70 68 70 27 2c 0a 20 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f thod.php',........'gtVariationCo
2720 6e 74 61 69 6e 65 72 27 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 ntainer'.........=>.'testcase/gt
2740 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 VariationContainer.php',......'g
2760 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 27 20 20 20 3d 3e 20 tVariationContainerMethod'...=>.
2780 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 'testcase/gtVariationContainerMe
27a0 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 thod.php',......'gtVariationCont
27c0 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 ainerFunction'.=>.'testcase/gtVa
27e0 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 riationContainerFunction.php',..
2800 29 3b 0a 3f 3e 0a 54 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 61 20 76 );.?>.The.method.name.is.not.a.v
2820 61 6c 69 64 20 50 48 50 20 6d 65 74 68 6f 64 20 6e 61 6d 65 2e 0a 43 68 65 63 6b 20 74 68 61 74 alid.PHP.method.name..Check.that
2840 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6d 65 .the.extension.containing.the.me
2860 74 68 6f 64 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 0a 54 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 thod.is.loaded....The.class.name
2880 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 50 48 50 20 63 6c 61 73 73 20 6e 61 6d 65 2e 0a .is.not.a.valid.PHP.class.name..
28a0 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e Check.that.the.extension.contain
28c0 69 6e 67 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 0a 50 6c 65 61 73 ing.the.class.is.loaded....Pleas
28e0 65 20 73 70 65 63 69 66 79 20 62 61 73 69 63 2c 20 65 72 72 6f 72 20 6f 72 20 76 61 72 69 61 74 e.specify.basic,.error.or.variat
2900 69 6f 6e 20 74 65 73 74 73 2e 0a 0a 55 73 61 67 65 3a 0a 70 68 70 20 67 65 6e 65 72 61 74 65 2d ion.tests...Usage:.php.generate-
2920 70 68 70 74 2e 70 68 70 20 20 2d 66 20 3c 66 75 6e 63 74 69 6f 6e 5f 6e 61 6d 65 3e 20 7c 2d 63 phpt.php..-f.<function_name>.|-c
2940 20 3c 63 6c 61 73 73 5f 6e 61 6d 65 3e 20 2d 6d 20 3c 6d 65 74 68 6f 64 5f 6e 61 6d 65 3e 20 2d .<class_name>.-m.<method_name>.-
2960 62 7c 65 7c 76 20 5b 2d 73 20 73 6b 69 70 69 66 3a 69 6e 69 3a 63 6c 65 61 6e 3a 64 6f 6e 65 5d b|e|v.[-s.skipif:ini:clean:done]
2980 20 5b 2d 6b 20 77 69 6e 7c 6e 6f 74 77 69 6e 7c 36 34 62 7c 6e 6f 74 36 34 62 5d 20 5b 2d 78 20 .[-k.win|notwin|64b|not64b].[-x.
29a0 65 78 74 5d 0a 0a 57 68 65 72 65 3a 0a 2d 66 20 66 75 6e 63 74 69 6f 6e 5f 6e 61 6d 65 20 2e 2e ext]..Where:.-f.function_name...
29c0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 4e 61 6d 65 20 6f 66 20 50 48 50 20 66 75 6e 63 ................Name.of.PHP.func
29e0 74 69 6f 6e 2c 20 65 67 20 63 6f 73 0a 2d 63 20 63 6c 61 73 73 20 6e 61 6d 65 20 2e 2e 2e 2e 2e tion,.eg.cos.-c.class.name......
2a00 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 4e 61 6d 65 20 6f 66 20 63 6c 61 73 73 2c 20 65 ................Name.of.class,.e
2a20 67 20 44 4f 4d 44 6f 63 75 6d 65 6e 74 0a 2d 6d 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 2e 2e 2e g.DOMDocument.-m.method.name....
2a40 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 4e 61 6d 65 20 6f 66 20 6d 65 74 68 6f 64 2c .................Name.of.method,
2a60 20 65 67 20 63 72 65 61 74 65 41 74 74 72 69 62 75 74 65 0a 2d 62 20 2e 2e 2e 2e 2e 2e 2e 2e 2e .eg.createAttribute.-b..........
2a80 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 .......................Generate.
2aa0 62 61 73 69 63 20 74 65 73 74 73 0a 2d 65 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e basic.tests.-e..................
2ac0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 65 72 72 6f 72 20 74 65 ...............Generate.error.te
2ae0 73 74 73 0a 2d 76 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e sts.-v..........................
2b00 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 73 0a .......Generate.variation.tests.
2b20 2d 73 20 73 65 63 74 69 6f 6e 73 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e -s.sections.....................
2b40 2e 2e 20 43 72 65 61 74 65 20 6f 70 74 69 6f 6e 61 6c 20 73 65 63 74 69 6f 6e 73 2c 20 63 6f 6c ...Create.optional.sections,.col
2b60 6f 6e 20 73 65 70 61 72 61 74 65 64 20 6c 69 73 74 0a 2d 6b 20 73 6b 69 70 69 66 20 6b 65 79 2e on.separated.list.-k.skipif.key.
2b80 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 53 6b 69 70 69 66 20 6f 70 74 69 .....................Skipif.opti
2ba0 6f 6e 2c 20 6f 6e 6c 79 20 75 73 65 64 20 69 66 20 2d 73 20 73 6b 69 70 69 66 20 69 73 20 75 73 on,.only.used.if.-s.skipif.is.us
2bc0 65 64 2e 0a 2d 78 20 65 78 74 65 6e 73 69 6f 6e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ed..-x.extension................
2be0 2e 2e 2e 2e 2e 2e 2e 53 6b 69 70 69 66 20 6f 70 74 69 6f 6e 2c 20 73 70 65 63 69 66 79 20 65 78 .......Skipif.option,.specify.ex
2c00 74 65 6e 73 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 0a 2d 68 20 2e 2e 2e 2e 2e 2e 2e 2e tension.to.check.for.-h.........
2c20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 50 72 69 6e 74 20 74 68 ........................Print.th
2c40 69 73 20 6d 65 73 73 61 67 65 0a 0a 59 6f 75 20 68 61 76 65 20 67 69 76 65 6e 20 61 20 63 6c 61 is.message..You.have.given.a.cla
2c60 73 73 20 6e 61 6d 65 20 62 75 74 20 6e 6f 74 20 73 75 70 70 6c 69 65 64 20 61 20 6d 65 74 68 6f ss.name.but.not.supplied.a.metho
2c80 64 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 2e 0a 54 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 d.name.to.test..The.method.name.
2ca0 69 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 0a 50 6c 65 61 73 65 20 73 75 70 70 6c 79 20 61 20 66 is.required....Please.supply.a.f
2cc0 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 74 6f 20 62 65 20 74 65 73 unction.or.method.name.to.be.tes
2ce0 74 65 64 2e 0a 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 ted....The.function.name.is.not.
2d00 61 20 76 61 6c 69 64 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 2e 0a 43 68 65 63 6b a.valid.PHP.function.name..Check
2d20 20 74 68 61 74 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 .that.the.extension.containing.t
2d40 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 3c 3f 70 68 70 0a 0a 2f he.function.is.loaded...<?php../
2d60 2a 2a 0a 20 2a 20 52 65 74 72 69 65 76 65 73 20 63 6f 64 65 20 73 6e 69 70 70 65 74 73 20 66 6f **..*.Retrieves.code.snippets.fo
2d80 72 20 61 64 64 69 6e 67 20 74 6f 20 74 65 73 74 20 63 61 73 65 73 0a 20 2a 20 0a 20 2a 2f 0a 63 r.adding.to.test.cases..*...*/.c
2da0 6c 61 73 73 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a lass.gtCodeSnippet.{..../**....*
2dc0 20 67 65 74 20 74 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 61 6e 64 20 69 6e 69 74 69 61 .get.the.code.snippet.and.initia
2de0 6c 69 73 65 20 61 6e 20 61 72 72 61 79 20 77 69 74 68 20 69 74 0a 20 20 20 2a 0a 20 20 20 2a 20 lise.an.array.with.it....*....*.
2e00 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e @param.string.$name....*.@return
2e20 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e .array....*/...public.static.fun
2e40 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 24 66 69 6c ction.get($name).{..........$fil
2e60 65 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 63 6f ename.=.dirname(__FILE__)...'/co
2e80 64 65 53 6e 69 70 70 65 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a deSnippets/'...$name...'.txt';..
2ea0 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 ....if.(!file_exists($filename))
2ec0 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f .{.......throw.new.LogicExceptio
2ee0 6e 28 27 54 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 n('The.code.snippet.'...$name...
2f00 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 '.does.not.exist');.....}.......
2f20 20 20 20 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 ...$lines.=.file($filename);....
2f40 20 66 6f 72 65 61 63 68 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 29 20 7b 0a 20 20 20 20 20 20 24 .foreach($lines.as.$l).{.......$
2f60 61 72 72 61 79 5b 5d 20 3d 20 72 74 72 69 6d 28 24 6c 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 array[].=.rtrim($l);.....}.....r
2f80 65 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 eturn.$array;...}........./**...
2fa0 20 2a 20 41 70 70 65 6e 64 20 74 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 6f 6e 20 74 6f .*.Append.the.code.snippet.on.to
2fc0 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 .an.existing.array....*....*.@pa
2fe0 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 ram.string.$name....*.@param.arr
3000 61 79 20 24 61 72 72 61 79 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 ay.$array....*.@return.array....
3020 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 */...public.static.function.appe
3040 6e 64 28 24 6e 61 6d 65 2c 20 24 61 72 72 61 79 29 20 7b 0a 20 20 20 20 24 66 69 6c 65 6e 61 6d nd($name,.$array).{.....$filenam
3060 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 63 6f 64 65 53 6e e.=.dirname(__FILE__)...'/codeSn
3080 69 70 70 65 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a 20 20 20 20 ippets/'...$name...'.txt';......
30a0 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 20 if.(!file_exists($filename)).{..
30c0 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 .....throw.new.LogicException('T
30e0 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 64 6f he.code.snippet.'...$name...'.do
3100 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 74 65 78 74 es.not.exist');.....}......$text
3120 20 3d 20 20 66 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 .=..file($filename);.....foreach
3140 20 28 24 74 65 78 74 20 61 73 20 24 74 29 20 7b 0a 20 20 20 20 20 20 24 61 72 72 61 79 5b 5d 20 .($text.as.$t).{.......$array[].
3160 3d 20 72 74 72 69 6d 28 24 74 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 =.rtrim($t);.....}..........retu
3180 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 rn.$array;...}........./**....*.
31a0 41 70 70 65 6e 64 73 20 62 6c 61 6e 6b 20 65 6e 74 72 69 65 73 20 6f 6e 20 74 6f 20 61 6e 20 61 Appends.blank.entries.on.to.an.a
31c0 72 72 61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 6e 75 6d 62 65 rray....*....*.@param.int.$numbe
31e0 72 4f 66 4c 69 6e 65 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 61 72 72 61 rOfLines....*.@param.array.$arra
3200 79 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 y....*.@return.array....*/...pub
3220 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 42 6c 61 6e 6b 4c lic.static.function.appendBlankL
3240 69 6e 65 73 28 24 6e 75 6d 62 65 72 4f 66 4c 69 6e 65 73 2c 20 24 61 72 72 61 79 29 20 7b 0a 0a ines($numberOfLines,.$array).{..
3260 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 20 24 6e 75 6d 62 65 72 4f 66 4c 69 6e 65 ....for.($i=0;.$i<.$numberOfLine
3280 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 24 61 72 72 61 79 5b 5d 20 3d 20 22 22 3b 0a s;.$i++).{.......$array[].=."";.
32a0 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 ....}..........return.$array;...
32c0 7d 0a 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 0a 67 74 41 75 74 6f 6c 6f 61 64 3a 3a 69 6e 69 }....}.?><?php...gtAutoload::ini
32e0 74 28 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 41 75 74 6f 6c 6f 61 64 65 72 20 75 73 69 6e 67 20 61 20 t();../**..*.Autoloader.using.a.
3300 6d 61 70 20 66 69 6c 65 20 28 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 29 0a 20 2a 20 64 65 66 map.file.(gtClassMap.php)..*.def
3320 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 20 74 6f 20 6c 6f 61 64 20 65 61 63 68 20 63 6c 61 73 ining.the.file.to.load.each.clas
3340 73 20 66 72 6f 6d 2e 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 41 75 74 6f 6c 6f 61 64 0a 7b 0a 20 s.from...*/.class.gtAutoload.{..
3360 20 2f 2a 2a 0a 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f ./**....*.@var.array....*/...pro
3380 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 4d 61 70 3b 0a 0a 20 20 2f 2a 2a 0a tected.static.$classMap;..../**.
33a0 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 ...*.@var.string....*/...protect
33c0 65 64 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 ed.static.$classPath;...../**...
33e0 20 2a 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 20 20 .*.Initialize.the.autoloader....
3400 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6c 6c 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c *....*.@return.null....*/...publ
3420 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 28 29 0a 20 20 7b 0a 20 20 ic.static.function.init()...{...
3440 20 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 ..self::$classPath.=.dirname(__F
3460 49 4c 45 5f 5f 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 73 65 6c 66 3a 3a 24 63 ILE__);......if.(substr(self::$c
3480 6c 61 73 73 50 61 74 68 2c 20 2d 31 29 20 21 3d 20 27 2f 27 29 20 7b 0a 20 20 20 20 20 20 73 65 lassPath,.-1).!=.'/').{.......se
34a0 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 3d 20 27 2f 27 3b 0a 20 20 20 20 7d 0a 0a 20 20 lf::$classPath..=.'/';.....}....
34c0 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 ..if.(file_exists(self::$classPa
34e0 74 68 20 2e 20 27 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 27 29 29 20 7b 0a 20 20 20 20 20 20 th...'gtClassMap.php')).{.......
3500 69 6e 63 6c 75 64 65 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 20 27 67 74 43 6c include.self::$classPath...'gtCl
3520 61 73 73 4d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 4d assMap.php';.......self::$classM
3540 61 70 20 3d 20 24 67 74 43 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 ap.=.$gtClassMap;.....}......if.
3560 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 5f 5f 61 75 74 6f 6c 6f 61 64 27 29 29 20 (function_exists('__autoload')).
3580 7b 0a 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 27 5f {.......spl_autoload_register('_
35a0 5f 61 75 74 6f 6c 6f 61 64 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 70 6c 5f 61 75 74 6f _autoload');.....}......spl_auto
35c0 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 67 74 41 75 74 6f 6c 6f 61 64 27 load_register(array('gtAutoload'
35e0 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a ,.'autoload'));...}...../**....*
3600 20 41 75 74 6f 6c 6f 61 64 20 6d 65 74 68 6f 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 .Autoload.method....*....*.@para
3620 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 43 6c 61 73 73 20 6e 61 6d 65 20 74 6f 20 61 75 m.string.$class.Class.name.to.au
3640 74 6f 6c 6f 61 64 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6c 6c 0a 20 20 20 2a 2f 0a 20 toload....*.@return.null....*/..
3660 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 .public.static.function.autoload
3680 28 24 63 6c 61 73 73 29 0a 20 20 7b 0a 20 20 20 20 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a ($class)...{.....if.(isset(self:
36a0 3a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 69 6e 63 :$classMap[$class])).{.......inc
36c0 6c 75 64 65 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 20 73 65 6c 66 3a 3a 24 63 lude.self::$classPath...self::$c
36e0 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 3f 3e lassMap[$class];.....}...}.}..?>
3700 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 50 61 72 73 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 <?php../**..*.Parse.command.line
3720 20 6f 70 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 43 6f 6d 6d 61 6e 64 4c .options..*..*/.class.gtCommandL
3740 69 6e 65 4f 70 74 69 6f 6e 73 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 68 6f 72 74 ineOptions.{....protected.$short
3760 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 27 62 27 2c 0a 20 20 20 20 27 65 Options.=.array(.....'b',.....'e
3780 27 2c 0a 20 20 20 20 27 76 27 2c 0a 20 20 20 20 27 68 27 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 6f ',.....'v',.....'h',...);....pro
37a0 74 65 63 74 65 64 20 24 73 68 6f 72 74 4f 70 74 69 6f 6e 73 57 69 74 68 41 72 67 73 20 3d 20 61 tected.$shortOptionsWithArgs.=.a
37c0 72 72 61 79 28 0a 20 20 20 20 27 63 27 2c 0a 20 20 20 20 27 6d 27 2c 0a 20 20 20 20 27 66 27 2c rray(.....'c',.....'m',.....'f',
37e0 0a 20 20 20 20 27 69 27 2c 0a 20 20 20 20 27 73 27 2c 0a 20 20 20 20 27 78 27 2c 0a 20 20 20 20 .....'i',.....'s',.....'x',.....
3800 27 6b 27 2c 0a 20 20 29 3b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 'k',...);......protected.$option
3820 73 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 68 6f 72 74 s;....protected.function.isShort
3840 4f 70 74 69 6f 6e 28 24 61 72 67 29 0a 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 73 75 62 Option($arg)...{.....return.(sub
3860 73 74 72 28 24 61 72 67 2c 20 30 2c 20 31 29 20 3d 3d 20 27 2d 27 29 20 26 26 20 28 73 75 62 73 str($arg,.0,.1).==.'-').&&.(subs
3880 74 72 28 24 61 72 67 2c 20 31 2c 20 31 29 20 21 3d 20 27 2d 27 29 3b 0a 20 20 7d 0a 0a 20 20 70 tr($arg,.1,.1).!=.'-');...}....p
38a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4f 70 74 69 6f 6e 41 72 67 28 ublic.function.isValidOptionArg(
38c0 24 61 72 72 61 79 2c 20 24 69 6e 64 65 78 29 20 7b 0a 20 20 20 20 69 66 20 28 21 69 73 73 65 74 $array,.$index).{.....if.(!isset
38e0 28 24 61 72 72 61 79 5b 24 69 6e 64 65 78 5d 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 72 65 ($array[$index])).....{.......re
3900 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 turn.false;.....}.....return.sub
3920 73 74 72 28 24 61 72 72 61 79 5b 24 69 6e 64 65 78 5d 2c 20 30 2c 20 31 29 20 21 3d 20 27 2d 27 str($array[$index],.0,.1).!=.'-'
3940 3b 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 ;...}.....public.function.parse(
3960 24 61 72 67 76 29 0a 20 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 28 24 61 72 67 76 29 20 3c $argv)...{.....if(count($argv).<
3980 20 32 29 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 4d 69 73 73 69 6e 67 4f .2).{.......throw.new.gtMissingO
39a0 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 ptionsException('Command.line.op
39c0 74 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 tions.are.required');.....}.....
39e0 0a 20 20 20 20 66 6f 72 20 28 24 69 3d 31 3b 20 24 69 3c 63 6f 75 6e 74 28 24 61 72 67 76 29 3b .....for.($i=1;.$i<count($argv);
3a00 20 24 69 2b 2b 29 20 7b 0a 0a 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 68 6f .$i++).{........if.($this->isSho
3a20 72 74 4f 70 74 69 6f 6e 28 24 61 72 67 76 5b 24 69 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 rtOption($argv[$i])).{.........$
3a40 6f 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 61 72 67 76 5b 24 69 5d 2c 20 31 29 3b 0a 20 option.=.substr($argv[$i],.1);..
3a60 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 .....}.else.{.........throw.new.
3a80 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63 6f gtUnknownOptionException('Unreco
3aa0 67 6e 69 73 65 64 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 gnised.command.line.option.'...$
3ac0 61 72 67 76 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 69 argv[$i]);.......}........if.(!i
3ae0 6e 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 n_array($option,.array_merge($th
3b00 69 73 2d 3e 73 68 6f 72 74 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 4f 70 is->shortOptions,.$this->shortOp
3b20 74 69 6f 6e 73 57 69 74 68 41 72 67 73 29 29 29 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 tionsWithArgs))).......{........
3b40 20 74 68 72 6f 77 20 6e 65 77 20 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 .throw.new.gtUnknownOptionExcept
3b60 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b 24 69 ion('Unknown.option.'...$argv[$i
3b80 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 ]);.......}........if.(in_array(
3ba0 24 6f 70 74 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 4f 70 74 69 6f 6e 73 29 29 20 7b $option,.$this->shortOptions)).{
3bc0 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d .........$this->options[$option]
3be0 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 .=.true;.........continue;......
3c00 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4f 70 74 .}........if.(!$this->isValidOpt
3c20 69 6f 6e 41 72 67 28 24 61 72 67 76 2c 20 24 69 20 2b 20 31 29 29 0a 20 20 20 20 20 20 7b 0a 20 ionArg($argv,.$i.+.1)).......{..
3c40 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 .......throw.new.gtMissingArgume
3c60 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 66 6f ntException('Missing.argument.fo
3c80 72 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b r.command.line.option.'...$argv[
3ca0 24 69 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 24 69 2b 2b 3b 0a 20 20 20 20 20 $i]);.......}........$i++;......
3cc0 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 20 3d 20 24 61 72 67 76 .$this->options[$option].=.$argv
3ce0 5b 24 69 5d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 2f 2a 2a 0a 20 20 20 2a 0a 20 20 20 [$i];.....}...}...../**....*....
3d00 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 */...public.function.getOption($
3d20 6f 70 74 69 6f 6e 29 0a 20 20 7b 0a 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 option)...{.....if.(!isset($this
3d40 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 20 20 20 20 20 20 72 65 74 ->options[$option])).{.......ret
3d60 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 urn.false;.....}.....return.$thi
3d80 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a s->options[$option];...}...../**
3da0 0a 20 20 20 2a 20 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 61 6e 20 6f 70 74 69 6f 6e 20 65 78 ....*.Check.whether.an.option.ex
3dc0 69 73 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 ists....*/...public.function.has
3de0 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 Option($option)...{.....return.i
3e00 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 3b 0a 20 sset($this->options[$option]);..
3e20 20 7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 .}...}.?><?php../**..*.Check.tha
3e40 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a t.the.function.name.is.valid..*.
3e60 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 .*/.class.gtIsValidFunction.exte
3e80 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 nds.gtPreCondition.{....public.f
3ea0 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 unction.check(.$clo).{.....if($c
3ec0 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 20 29 20 7b 0a 20 20 20 20 20 20 24 66 75 lo->hasOption('f').).{.......$fu
3ee0 6e 63 74 69 6f 6e 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 27 29 3b 0a 20 nction.=.$clo->getOption('f');..
3f00 20 20 20 20 20 24 66 75 6e 63 74 69 6f 6e 73 20 3d 20 67 65 74 5f 64 65 66 69 6e 65 64 5f 66 75 .....$functions.=.get_defined_fu
3f20 6e 63 74 69 6f 6e 73 28 29 3b 0a 20 20 20 20 20 20 69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 nctions();.......if(.in_array(.$
3f40 66 75 6e 63 74 69 6f 6e 2c 20 24 66 75 6e 63 74 69 6f 6e 73 5b 27 69 6e 74 65 72 6e 61 6c 27 5d function,.$functions['internal']
3f60 20 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 .).).{.........return.true;.....
3f80 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 ..}.......return.false;.....}...
3fa0 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e ..return.true;...}....public.fun
3fc0 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 ction.getMessage().{.....return.
3fe0 67 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b 6e 6f 77 6e 46 75 6e 63 74 69 6f 6e 27 29 3b 0a gtText::get('unknownFunction');.
4000 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 ..}.}.?><?php../**..*.Check.that
4020 20 62 7c 63 7c 76 20 69 73 20 73 70 65 63 69 66 69 65 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 .b|c|v.is.specified..*..*/.class
4040 20 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 20 65 78 74 65 6e 64 73 20 67 .gtIsSpecifiedTestType.extends.g
4060 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 tPreCondition.{......public.func
4080 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d tion.check(.$clo).{.....if($clo-
40a0 3e 68 61 73 4f 70 74 69 6f 6e 28 27 62 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 >hasOption('b').||.$clo->hasOpti
40c0 6f 6e 28 27 65 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 76 27 29 20 on('e').||.$clo->hasOption('v').
40e0 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 ).{..............return.true;...
4100 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a 20 ....}.....return.false;...}.....
4120 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a .public.function.getMessage().{.
4140 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 74 65 73 74 54 79 70 65 ....return.gtText::get('testType
4160 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f NotSpecified');...}.}.?><?php../
4180 2a 2a 0a 20 2a 20 49 66 20 75 73 65 20 68 61 73 20 72 65 71 75 65 73 74 65 64 20 61 20 63 6c 61 **..*.If.use.has.requested.a.cla
41a0 73 73 20 63 68 65 63 6b 20 74 68 61 74 20 6d 65 74 68 6f 64 20 69 73 20 73 70 65 63 69 66 69 65 ss.check.that.method.is.specifie
41c0 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f d..*..*/.class.gtIfClassHasMetho
41e0 64 20 65 78 74 65 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 d.extends.gtPreCondition.{......
4200 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 public.function.check(.$clo).{..
4220 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 ...if($clo->hasOption('c')).{...
4240 20 20 20 20 69 66 28 21 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 6d 27 29 29 20 7b 0a ....if(!$clo->hasOption('m')).{.
4260 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 ........return.false;.......}...
4280 20 20 20 20 72 65 74 75 72 6e 20 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 ....return..true;.....}.....retu
42a0 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rn.true;...}......public.functio
42c0 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 n.getMessage().{.....return.gtTe
42e0 78 74 3a 3a 67 65 74 28 27 6d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 xt::get('methodNotSpecified');..
4300 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 .}..}.?><?php../**..*.Check.that
4320 20 65 69 74 68 65 72 20 61 20 6d 65 74 68 6f 64 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 .either.a.method.or.a.function.i
4340 73 20 73 70 65 63 69 66 69 65 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 53 70 65 s.specified..*..*/.class.gtIsSpe
4360 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 cifiedFunctionOrMethod.extends.g
4380 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 tPreCondition.{......public.func
43a0 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d tion.check(.$clo).{.....if($clo-
43c0 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 >hasOption('f').||.$clo->hasOpti
43e0 6f 6e 28 27 6d 27 29 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 on('m')).{..............return.t
4400 72 75 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 rue;.......}.....return.false;..
4420 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 .}......public.function.getMessa
4440 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 66 ge().{.....return.gtText::get('f
4460 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 unctionOrMethodNotSpecified');..
4480 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 .}.}.?><?php../**..*.Check.that.
44a0 74 65 68 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f 0a teh.method.name.is.valid..*..*/.
44c0 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 class.gtIsValidMethod.extends.gt
44e0 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e PreCondition.{...public.function
4500 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 .check(.$clo).{.....if($clo->has
4520 4f 70 74 69 6f 6e 28 27 6d 27 29 20 29 20 7b 0a 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 Option('m').).{.......$className
4540 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20 24 .=.$clo->getOption('c');.......$
4560 63 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 28 24 63 6c 61 class.=.new.ReflectionClass($cla
4580 73 73 4e 61 6d 65 29 3b 0a 20 20 20 20 20 20 24 6d 65 74 68 6f 64 73 20 3d 20 24 63 6c 61 73 73 ssName);.......$methods.=.$class
45a0 2d 3e 67 65 74 4d 65 74 68 6f 64 73 28 29 3b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 24 6d ->getMethods();.......foreach($m
45c0 65 74 68 6f 64 73 20 61 73 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 ethods.as.$method).{.........if(
45e0 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 27 29 20 3d 3d 20 24 6d 65 74 68 6f 64 2d $clo->getOption('m').==.$method-
4600 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 >getName()).{...........return.t
4620 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 74 rue;.........}.......}.......ret
4640 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 urn.false;.....}.....return.true
4660 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 ;...}....public.function.getMess
4680 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 age().{.....return.gtText::get('
46a0 75 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 27 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a unknownMethod');...}.}.?><?php..
46c0 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 /**..*.Check.that.the.class.name
46e0 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 .is.valid..*..*/.class.gtIsValid
4700 43 6c 61 73 73 20 65 78 74 65 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a Class.extends.gtPreCondition.{..
4720 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b ..public.function.check(.$clo).{
4740 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 20 29 20 7b .....if($clo->hasOption('c').).{
4760 0a 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 .......$className.=.$clo->getOpt
4780 69 6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20 69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 63 ion('c');.......if(.in_array(.$c
47a0 6c 61 73 73 4e 61 6d 65 2c 20 67 65 74 5f 64 65 63 6c 61 72 65 64 5f 63 6c 61 73 73 65 73 28 29 lassName,.get_declared_classes()
47c0 20 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 .).).{.........return.true;.....
47e0 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 ..}.......return.false;.....}...
4800 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e ..return.true;...}....public.fun
4820 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 ction.getMessage().{.....return.
4840 67 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b 6e 6f 77 6e 43 6c 61 73 73 27 29 3b 0a 20 20 7d gtText::get('unknownClass');...}
4860 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 4c 69 73 74 20 6f 66 20 70 72 65 63 6f .}.?><?php../**..*.List.of.preco
4880 6e 64 69 74 69 6f 6e 73 2e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 50 72 65 43 6f 6e 64 nditions...*..*/.class.gtPreCond
48a0 69 74 69 6f 6e 4c 69 73 74 20 7b 0a 20 20 0a 20 20 70 72 69 76 61 74 65 20 24 70 72 65 43 6f 6e itionList.{......private.$preCon
48c0 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 ditions.=.array(.......'gtIsSpec
48e0 69 66 69 65 64 54 65 73 74 54 79 70 65 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 69 ifiedTestType',.......'gtIsSpeci
4900 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 27 2c 20 20 0a 20 20 20 20 20 20 27 fiedFunctionOrMethod',.........'
4920 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 gtIfClassHasMethod',.......'gtIs
4940 56 61 6c 69 64 43 6c 61 73 73 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 46 75 6e ValidClass',.......'gtIsValidFun
4960 63 74 69 6f 6e 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 27 2c ction',.......'gtIsValidMethod',
4980 0a 20 20 29 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 20 61 6e 20 69 6e 73 ...);...../**....*.Create.an.ins
49a0 74 61 6e 63 65 20 6f 66 20 65 61 63 68 20 70 72 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 tance.of.each.pre-condition.and.
49c0 72 75 6e 20 74 68 65 69 72 20 63 68 65 63 6b 20 6d 65 74 68 6f 64 73 0a 20 20 20 2a 0a 20 20 20 run.their.check.methods....*....
49e0 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 63 6c 6f 29 */...public.function.check($clo)
4a00 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 43 6f 6e 64 69 74 .{.....foreach.($this->preCondit
4a20 69 6f 6e 73 20 61 73 20 24 70 72 65 43 6f 6e 29 20 7b 0a 20 20 20 20 20 20 24 63 68 65 63 6b 54 ions.as.$preCon).{.......$checkT
4a40 68 69 73 20 3d 20 6e 65 77 20 24 70 72 65 43 6f 6e 3b 0a 20 20 20 20 20 20 69 66 28 21 24 63 68 his.=.new.$preCon;.......if(!$ch
4a60 65 63 6b 54 68 69 73 2d 3e 63 68 65 63 6b 28 24 63 6c 6f 29 29 20 7b 0a 20 20 20 20 20 20 20 20 eckThis->check($clo)).{.........
4a80 65 63 68 6f 20 24 63 68 65 63 6b 54 68 69 73 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 echo.$checkThis->getMessage();..
4aa0 20 20 20 20 20 20 20 64 69 65 28 67 74 54 65 78 74 3a 3a 67 65 74 28 27 68 65 6c 70 27 29 29 3b .......die(gtText::get('help'));
4ac0 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 63 6c 61 .......}.....}...}.}.?><?php.cla
4ae0 73 73 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 7b 0a 0a 20 20 70 72 69 76 61 ss.gtOptionalSections.{....priva
4b00 74 65 20 24 6f 70 74 53 65 63 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 27 73 6b te.$optSections.=.array(.....'sk
4b20 69 70 69 66 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 27 69 6e 69 27 20 20 20 20 3d 3e 20 ipif'.=>.false,.....'ini'....=>.
4b40 66 61 6c 73 65 2c 0a 20 20 20 20 27 63 6c 65 61 6e 27 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 false,.....'clean'..=>.false,...
4b60 20 20 27 64 6f 6e 65 27 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 69 ..'done'...=>.false,...);....pri
4b80 76 61 74 65 20 24 73 6b 69 70 69 66 4b 65 79 20 3d 20 27 27 3b 0a 20 20 70 72 69 76 61 74 65 20 vate.$skipifKey.=.'';...private.
4ba0 24 73 6b 69 70 69 66 45 78 74 20 3d 20 27 27 3b 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 $skipifExt.=.'';.....public.func
4bc0 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 tion.setOptions($commandLineOpti
4be0 6f 6e 73 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e ons).{.....if($commandLineOption
4c00 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27 29 29 20 7b 0a 20 20 20 20 20 20 24 6f 70 74 69 s->hasOption('s')).{.......$opti
4c20 6f 6e 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f ons.=.explode(':',.$commandLineO
4c40 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 27 29 29 3b 0a 0a 20 20 20 20 20 20 ptions->getOption('s'));........
4c60 66 6f 72 65 61 63 68 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 0a foreach($options.as.$option).{..
4c80 20 20 20 20 20 20 20 20 69 66 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6f 70 74 ........if(array_key_exists($opt
4ca0 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 20 29 29 20 7b 0a 20 20 20 ion,.$this->optSections.)).{....
4cc0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 24 6f 70 74 69 6f .......$this->optSections[$optio
4ce0 6e 5d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 n].=.true;.........}.else.{.....
4d00 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e ......throw.new.gtUnknownSection
4d20 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63 6f 67 6e 69 73 65 64 20 6f 70 74 69 6f 6e 61 6c Exception('Unrecognised.optional
4d40 20 73 65 63 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 .section');.........}.......}...
4d60 20 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 .....if($commandLineOptions->has
4d80 4f 70 74 69 6f 6e 28 27 6b 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b Option('k')).{.........$this->sk
4da0 69 70 69 66 4b 65 79 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 ipifKey.=.$commandLineOptions->g
4dc0 65 74 4f 70 74 69 6f 6e 28 27 6b 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 etOption('k');.......}..........
4de0 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f ....if($commandLineOptions->hasO
4e00 70 74 69 6f 6e 28 27 78 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b 69 ption('x')).{.........$this->ski
4e20 70 69 66 45 78 74 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 65 pifExt.=.$commandLineOptions->ge
4e40 74 4f 70 74 69 6f 6e 28 27 78 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 20 tOption('x');.......}...........
4e60 20 7d 0a 20 20 7d 0a 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f .}...}......public.function.getO
4e80 70 74 69 6f 6e 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 ptions().{.....return.$this->opt
4ea0 53 65 63 74 69 6f 6e 73 3b 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Sections;...}.....public.functio
4ec0 6e 20 67 65 74 53 6b 69 70 69 66 4b 65 79 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 n.getSkipifKey().{.....return.$t
4ee0 68 69 73 2d 3e 73 6b 69 70 69 66 4b 65 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 his->skipifKey;...}......public.
4f00 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6b 69 70 69 66 45 78 74 28 29 20 7b 0a 20 20 20 20 72 65 function.getSkipifExt().{.....re
4f20 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6b 69 70 69 66 45 78 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 turn.$this->skipifExt;...}....pu
4f40 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 6b 69 70 69 66 28 29 20 7b 0a 20 20 20 20 blic.function.hasSkipif().{.....
4f60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 73 6b 69 70 69 return.$this->optSections['skipi
4f80 66 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 f'];...}....public.function.hasS
4fa0 6b 69 70 69 66 4b 65 79 28 29 20 7b 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 73 6b 69 70 69 kipifKey().{.....if($this->skipi
4fc0 66 4b 65 79 20 21 3d 20 27 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b fKey.!=.'').{.......return.true;
4fe0 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a .....}.....return.false;...}....
5000 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 6b 69 70 69 66 45 78 74 28 29 ..public.function.hasSkipifExt()
5020 20 7b 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 73 6b 69 70 69 66 45 78 74 20 21 3d 20 27 27 .{.....if($this->skipifExt.!=.''
5040 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 ).{.......return.true;.....}....
5060 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 .return.false;...}...public.func
5080 74 69 6f 6e 20 68 61 73 49 6e 69 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 tion.hasIni().{.....return.$this
50a0 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 69 6e 69 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 ->optSections['ini'];...}....pub
50c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6c 65 61 6e 28 29 20 7b 0a 20 20 20 20 72 65 lic.function.hasClean().{.....re
50e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 63 6c 65 61 6e 27 5d turn.$this->optSections['clean']
5100 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 44 6f ;...}......public.function.hasDo
5120 6e 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 ne().{.....return.$this->optSect
5140 69 6f 6e 73 5b 27 64 6f 6e 65 27 5d 3b 0a 20 20 7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 ions['done'];...}...}.?><?php...
5160 20 63 6c 61 73 73 20 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f .class.gtMissingArgumentExceptio
5180 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 n.extends.RuntimeException...{..
51a0 20 7d 0a 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a 63 6c 61 73 73 20 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 .}..?>.<?php..class.gtUnknownSec
51c0 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 tionException.extends.RuntimeExc
51e0 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 20 63 6c 61 73 73 20 eption...{...}.?><?php....class.
5200 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 gtUnknownOptionException.extends
5220 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 7d 0a 0a 3f 3e 0a 3c 3f .RuntimeException...{...}..?>.<?
5240 70 68 70 0a 0a 20 63 6c 61 73 73 20 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 php...class.gtMissingOptionsExce
5260 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 ption.extends.RuntimeException..
5280 20 7b 0a 20 20 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 70 61 72 65 6e 74 20 63 .{...}..?><?php../**..*.parent.c
52a0 6c 61 73 73 20 66 6f 72 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a 61 62 lass.for.preconditions..*..*/.ab
52c0 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 stract.class.gtPreCondition.{...
52e0 0a 20 20 61 62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 ...abstract.public.function.chec
5300 6b 28 24 63 6c 6f 29 3b 20 0a 20 20 0a 20 20 61 62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 k($clo);.......abstract.public.f
5320 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 3b 20 0a 20 20 0a 7d 0a 3f 3e 3c 3f unction.getMessage();.....}.?><?
5340 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 57 72 69 74 65 73 20 61 20 73 69 6e 67 6c 65 20 74 65 73 74 php../**..*.Writes.a.single.test
5360 20 63 61 73 65 20 74 6f 20 61 20 66 69 6c 65 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 54 .case.to.a.file..*..*/.class.gtT
5380 65 73 74 43 61 73 65 57 72 69 74 65 72 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 estCaseWriter.{......public.stat
53a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 73 74 72 69 6e 67 ic.function.write($name,.$string
53c0 2c 20 24 74 79 70 65 2c 20 24 63 6f 75 6e 74 20 3d 20 30 29 20 7b 0a 20 20 20 20 69 66 20 28 24 ,.$type,.$count.=.0).{.....if.($
53e0 74 79 70 65 20 20 3d 3d 20 27 62 27 29 20 7b 0a 20 20 20 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 type..==.'b').{.....$fileName.=.
5400 24 6e 61 6d 65 2e 22 5f 62 61 73 69 63 2e 70 68 70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a $name."_basic.phpt";.....}......
5420 20 20 20 20 69 66 20 28 24 74 79 70 65 20 20 3d 3d 20 27 65 27 29 20 7b 0a 20 20 20 20 20 24 66 ....if.($type..==.'e').{......$f
5440 69 6c 65 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 2e 22 5f 65 72 72 6f 72 2e 70 68 70 74 22 3b 0a 20 ileName.=.$name."_error.phpt";..
5460 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 69 66 20 28 24 74 79 70 65 20 20 3d 3d 20 27 76 27 29 ...}..........if.($type..==.'v')
5480 20 7b 0a 20 20 20 20 20 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 2e 22 5f 76 61 72 .{.......$fileName.=.$name."_var
54a0 69 61 74 69 6f 6e 22 2e 24 63 6f 75 6e 74 2e 22 2e 70 68 70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 iation".$count.".phpt";.....}...
54c0 20 20 0a 20 20 20 20 24 66 68 20 3d 20 66 6f 70 65 6e 28 24 66 69 6c 65 4e 61 6d 65 2c 20 27 77 .......$fh.=.fopen($fileName,.'w
54e0 27 29 3b 0a 20 20 20 20 66 77 72 69 74 65 20 28 24 66 68 2c 20 24 73 74 72 69 6e 67 29 3b 0a 20 ');.....fwrite.($fh,.$string);..
5500 20 20 20 66 63 6c 6f 73 65 28 24 66 68 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f ...fclose($fh);...}.}.?><?php../
5520 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 6d 65 74 68 6f 64 20 75 6e 64 65 72 20 74 65 73 **..*.Class.for.method.under.tes
5540 74 20 28 73 65 65 20 67 74 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 6f 6e 2d 4f 4f 20 74 65 73 t.(see.gtFunction.for.non-OO.tes
5560 74 73 29 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 4d 65 74 68 6f 64 20 20 65 78 74 65 6e 64 73 20 ts)..*/.class.gtMethod..extends.
5580 67 74 54 65 73 74 53 75 62 6a 65 63 74 20 7b 0a 0a 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 gtTestSubject.{....private.$clas
55a0 73 4e 61 6d 65 3b 0a 20 20 70 72 69 76 61 74 65 20 24 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 sName;...private.$methodName;...
55c0 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 private.$constructorArgumentName
55e0 73 3b 0a 20 20 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e s;...private.$constructorArgumen
5600 74 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 tList.=.'';...private.$construct
5620 6f 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 0a 20 orInitialisationStatements;.....
5640 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 67 74 4d 65 74 68 6f 64 20 6f 62 6a ./**....*.Construct.gtMethod.obj
5660 65 63 74 20 66 72 6f 6d 20 74 68 65 20 63 6c 61 73 73 20 61 6e 64 20 6d 65 74 68 6f 64 20 6e 61 ect.from.the.class.and.method.na
5680 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 mes....*....*.@param.string.$cla
56a0 73 73 4e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6d 65 74 68 6f ssName....*.@param.string.$metho
56c0 64 4e 61 6d 65 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f dName....*/...public.function.__
56e0 63 6f 6e 73 74 72 75 63 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d construct($className,.$methodNam
5700 65 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 e).{.....$this->className.=.$cla
5720 73 73 4e 61 6d 65 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 ssName;.....$this->methodName.=.
5740 24 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 $methodName;...}...../**....*.Se
5760 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 63 6c 61 73 73 20 63 6f 6e 73 74 72 75 t.the.names.of.the.class.constru
5780 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 73 2e 20 54 61 6b 65 20 6f 6e 6c 79 20 6d 61 6e 64 61 74 ctor.arguments..Take.only.mandat
57a0 6f 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 ory.argument.names.....*....*/..
57c0 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 .public.function.setConstructorA
57e0 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 24 72 65 66 6c 65 63 74 69 6f 6e rgumentNames().{.....$reflection
5800 43 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 28 24 74 68 69 Class.=.new.ReflectionClass($thi
5820 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 29 3b 0a 20 20 20 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 20 s->className);.....$constructor.
5840 3d 20 24 72 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 2d 3e 67 65 74 43 6f 6e 73 74 72 75 63 74 =.$reflectionClass->getConstruct
5860 6f 72 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 63 6f 6e 73 74 72 75 63 74 6f 72 2d 3e or();.....foreach($constructor->
5880 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 61 6d 29 getParameters().as.$i.=>.$param)
58a0 20 7b 0a 20 20 20 20 20 20 2f 2f 69 66 28 21 24 70 61 72 61 6d 2d 3e 69 73 4f 70 74 69 6f 6e 61 .{.......//if(!$param->isOptiona
58c0 6c 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f l()).{.........$this->constructo
58e0 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 rArgumentNames[].=.$param->getNa
5900 6d 65 28 29 3b 0a 20 20 20 20 20 20 2f 2f 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 0a 20 20 me();.......//}.....}...}.......
5920 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 6d 61 /**....*.Set.the.names.of.the.ma
5940 6e 64 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 ndatory.and.optional.arguments.t
5960 6f 20 74 68 65 20 6d 65 74 68 6f 64 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 o.the.method....*....*/...public
5980 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 0a .function.setArgumentNames().{..
59a0 20 20 20 20 24 6d 65 74 68 6f 64 43 6c 61 73 73 20 20 3d 20 6e 65 77 20 72 65 66 6c 65 63 74 69 ....$methodClass..=.new.reflecti
59c0 6f 6e 4d 65 74 68 6f 64 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 2c 20 24 74 68 69 73 onMethod($this->className,.$this
59e0 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 29 3b 0a 20 20 20 20 24 70 61 72 61 6d 65 74 65 72 73 20 3d ->methodName);.....$parameters.=
5a00 20 24 6d 65 74 68 6f 64 43 6c 61 73 73 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0a .$methodClass->getParameters();.
5a20 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d 65 74 68 6f 64 43 6c 61 73 73 2d 3e 67 65 74 50 .....foreach.($methodClass->getP
5a40 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 arameters().as.$i.=>.$param).{..
5a60 20 20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e 69 73 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a .....if($param->isOptional()).{.
5a80 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e ........$this->optionalArgumentN
5aa0 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 ames[].=.$param->getName();.....
5ac0 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 ..}.else.{.........$this->mandat
5ae0 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 oryArgumentNames[].=.$param->get
5b00 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f Name();.......}......}...}...../
5b20 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 74 **....*.Return.the.list.of.const
5b40 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 ructor.argument.names....*....*.
5b60 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e @return.array....*/...public.fun
5b80 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 ction.getConstructorArgumentName
5ba0 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 s().{.....return.$this->construc
5bc0 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 torArgumentNames;...}..../**....
5be0 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 0a *.Return.the.name.of.the.method.
5c00 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 ...*....*.@return.string....*/..
5c20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 20 7b 0a 20 20 20 .public.function.getName().{....
5c40 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d 0a 0a .return.$this->methodName;...}..
5c60 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 .../**....*.Return.the.name.of.t
5c80 68 65 20 63 6c 61 73 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e he.class....*....*.@return.strin
5ca0 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 g....*/...public.function.getCla
5cc0 73 73 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 ssName().{.....return.$this->cla
5ce0 73 73 4e 61 6d 65 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 ssName;...}....../**....*.Set.th
5d00 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 e.list.of.arguments.to.be.passed
5d20 20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 .to.the.constructor....*....*/..
5d40 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 .public.function.setConstructorA
5d60 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 rgumentList().{.....if(count.($t
5d80 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e his->constructorArgumentNames).>
5da0 20 30 29 20 7b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 .0).{..............for(.$i.=.0;.
5dc0 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 $i.<.count(.$this->constructorAr
5de0 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 24 gumentNames.);.$i++).{.........$
5e00 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 2e 3d this->constructorArgumentList..=
5e20 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 ."\$".$this->constructorArgument
5e40 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 24 74 Names[$i].",.";.......}.......$t
5e60 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 his->constructorArgumentList.=.s
5e80 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 ubstr($this->constructorArgument
5ea0 4c 69 73 74 2c 20 30 2c 20 2d 32 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a List,.0,.-2);.....}...}...../**.
5ec0 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 74 68 65 20 61 72 67 75 ...*.Return.the.list.of.the.argu
5ee0 6d 65 6e 74 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 ments.to.be.passed.to.the.constr
5f00 75 63 74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 uctor....*....*.@return.string..
5f20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 ..*/...public.function.getConstr
5f40 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e uctorArgumentList().{.....return
5f60 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b .$this->constructorArgumentList;
5f80 0a 20 20 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 75 70 20 74 68 65 20 73 ...}......./**....*.Set.up.the.s
5fa0 6f 75 72 63 65 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20 69 6e 69 74 69 61 6c 69 73 65 ource.statements.that.initialise
5fc0 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 73 3b 0a 20 20 20 2a 0a 20 20 20 .constructor.arguments;....*....
5fe0 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 */...public.function.setConstruc
6000 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 torInitStatements().{.....if(cou
6020 6e 74 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 nt.($this->constructorArgumentNa
6040 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 mes).>.0).{.......foreach(.$this
6060 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e ->constructorArgumentNames.as.$n
6080 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f ame).{.........$this->constructo
60a0 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c rInitialisationStatements[].=."\
60c0 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 $".$name.".=.";.......}.....}...
60e0 20 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e .}......./**....*.Return.the.con
6100 73 74 72 75 63 74 6f 72 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e structor.initialisation.statemen
6120 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f ts....*....*.@return.array....*/
6140 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 63 74 6f ...public.function.getConstructo
6160 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 rInitStatements().{.....return.$
6180 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 this->constructorInitialisationS
61a0 74 61 74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d 0a 3f 3e 20 2a 0a 20 2a 2f 69 66 20 28 73 75 62 tatements;...}.}.?>.*..*/if.(sub
61c0 73 74 72 28 50 48 50 5f 4f 53 2c 20 30 2c 20 33 29 20 3d 3d 20 27 57 49 4e 27 29 20 64 69 65 28 str(PHP_OS,.0,.3).==.'WIN').die(
61e0 22 73 6b 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20 6e 6f 74 20 66 6f 72 20 57 69 6e 64 6f "skip.this.test.is.not.for.Windo
6200 77 73 20 70 6c 61 74 66 6f 72 6d 73 22 29 3b 0a 2f 2a 2a 0a 20 2a 24 76 61 72 69 61 74 69 6f 6e ws.platforms");./**..*$variation
6220 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 66 6c 6f 61 74 20 31 30 2e 35 27 20 3d _array.=.array(...'float.10.5'.=
6240 3e 20 31 30 2e 35 2c 0a 20 20 27 66 6c 6f 61 74 20 2d 31 30 2e 35 27 20 3d 3e 20 2d 31 30 2e 35 >.10.5,...'float.-10.5'.=>.-10.5
6260 2c 0a 20 20 27 66 6c 6f 61 74 20 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e 20 ,...'float.12.3456789000e10'.=>.
6280 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 30 2c 0a 20 20 27 66 6c 6f 61 74 20 2d 31 32 2e 33 12.3456789000e10,...'float.-12.3
62a0 34 35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e 20 2d 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 456789000e10'.=>.-12.3456789000e
62c0 31 30 2c 0a 20 20 27 66 6c 6f 61 74 20 2e 35 27 20 3d 3e 20 2e 35 2c 0a 20 20 29 3b 24 68 65 72 10,...'float..5'.=>..5,...);$her
62e0 65 64 6f 63 20 3d 20 3c 3c 3c 45 4f 54 0a 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 45 4f 54 3b 0a 0a edoc.=.<<<EOT.hello.world.EOT;..
6300 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 73 74 72 $variation_array.=.array(...'str
6320 69 6e 67 20 44 51 27 20 3d 3e 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 27 73 74 72 69 6e 67 20 53 ing.DQ'.=>."string",...'string.S
6340 51 27 20 3d 3e 20 27 73 74 72 69 6e 67 27 2c 0a 20 20 27 6d 69 78 65 64 20 63 61 73 65 20 73 74 Q'.=>.'string',...'mixed.case.st
6360 72 69 6e 67 27 20 3d 3e 20 22 73 54 72 49 6e 47 22 2c 0a 20 20 27 68 65 72 65 64 6f 63 27 20 3d ring'.=>."sTrInG",...'heredoc'.=
6380 3e 20 24 68 65 72 65 64 6f 63 2c 0a 20 20 29 3b 66 6f 72 65 61 63 68 20 28 20 24 76 61 72 69 61 >.$heredoc,...);foreach.(.$varia
63a0 74 69 6f 6e 5f 61 72 72 61 79 20 61 73 20 24 76 61 72 20 29 20 7b 69 66 20 28 73 75 62 73 74 72 tion_array.as.$var.).{if.(substr
63c0 28 50 48 50 5f 4f 53 2c 20 30 2c 20 33 29 20 21 3d 20 27 57 49 4e 27 29 20 64 69 65 28 22 73 6b (PHP_OS,.0,.3).!=.'WIN').die("sk
63e0 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20 66 6f 72 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 ip.this.test.is.for.Windows.plat
6400 66 6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 24 69 6e 64 65 78 5f 61 72 72 61 79 20 3d 20 61 72 72 forms.only");.$index_array.=.arr
6420 61 79 28 31 2c 20 32 2c 20 33 29 3b 0a 24 61 73 73 6f 63 5f 61 72 72 61 79 20 3d 20 61 72 72 61 ay(1,.2,.3);.$assoc_array.=.arra
6440 79 28 31 20 3d 3e 20 27 6f 6e 65 27 2c 20 32 20 3d 3e 20 27 74 77 6f 27 29 3b 0a 0a 24 76 61 72 y(1.=>.'one',.2.=>.'two');..$var
6460 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 65 6d 70 74 79 20 61 iation_array.=.array(...'empty.a
6480 72 72 61 79 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 20 20 27 69 6e 74 20 69 6e 64 65 78 65 64 rray'.=>.array(),...'int.indexed
64a0 20 61 72 72 61 79 27 20 3d 3e 20 24 69 6e 64 65 78 5f 61 72 72 61 79 2c 0a 20 20 27 61 73 73 6f .array'.=>.$index_array,...'asso
64c0 63 69 61 74 69 76 65 20 61 72 72 61 79 27 20 3d 3e 20 24 61 73 73 6f 63 5f 61 72 72 61 79 2c 0a ciative.array'.=>.$assoc_array,.
64e0 20 20 27 6e 65 73 74 65 64 20 61 72 72 61 79 73 27 20 3d 3e 20 61 72 72 61 79 28 27 66 6f 6f 27 ..'nested.arrays'.=>.array('foo'
6500 2c 20 24 69 6e 64 65 78 5f 61 72 72 61 79 2c 20 24 61 73 73 6f 63 5f 61 72 72 61 79 29 2c 0a 20 ,.$index_array,.$assoc_array),..
6520 20 29 3b 7d 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 .);}$variation_array.=.array(...
6540 27 6c 6f 77 65 72 63 61 73 65 20 74 72 75 65 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 27 6c 6f 77 'lowercase.true'.=>.true,...'low
6560 65 72 63 61 73 65 20 66 61 6c 73 65 27 20 3d 3e 66 61 6c 73 65 2c 0a 20 20 27 75 70 70 65 72 63 ercase.false'.=>false,...'upperc
6580 61 73 65 20 54 52 55 45 27 20 3d 3e 54 52 55 45 2c 0a 20 20 27 75 70 70 65 72 63 61 73 65 20 46 ase.TRUE'.=>TRUE,...'uppercase.F
65a0 41 4c 53 45 27 20 3d 3e 46 41 4c 53 45 2c 0a 20 20 29 3b 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 ALSE'.=>FALSE,...);if.(PHP_INT_S
65c0 49 5a 45 20 21 3d 20 38 29 20 64 69 65 28 22 73 6b 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 IZE.!=.8).die("skip.this.test.is
65e0 20 66 6f 72 20 36 34 62 69 74 20 70 6c 61 74 66 6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 69 66 20 .for.64bit.platforms.only");.if.
6600 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 21 3d 20 34 29 20 64 69 65 28 22 73 6b 69 70 20 74 68 (PHP_INT_SIZE.!=.4).die("skip.th
6620 69 73 20 74 65 73 74 20 69 73 20 66 6f 72 20 33 32 62 69 74 20 70 6c 61 74 66 6f 72 6d 73 20 6f is.test.is.for.32bit.platforms.o
6640 6e 6c 79 22 29 3b 0a 24 75 6e 73 65 74 5f 76 61 72 20 3d 20 31 30 3b 0a 75 6e 73 65 74 28 24 75 nly");.$unset_var.=.10;.unset($u
6660 6e 73 65 74 5f 76 61 72 29 3b 0a 0a 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 nset_var);..$variation_array.=.a
6680 72 72 61 79 28 0a 20 20 27 75 6e 73 65 74 20 76 61 72 27 20 3d 3e 20 40 24 75 6e 73 65 74 5f 76 rray(...'unset.var'.=>.@$unset_v
66a0 61 72 2c 0a 20 20 27 75 6e 64 65 66 69 6e 65 64 20 76 61 72 27 20 3d 3e 20 40 24 75 6e 64 65 66 ar,...'undefined.var'.=>.@$undef
66c0 69 6e 65 64 5f 76 61 72 2c 09 0a 20 20 27 65 6d 70 74 79 20 73 74 72 69 6e 67 20 44 51 27 20 3d ined_var,....'empty.string.DQ'.=
66e0 3e 20 22 22 2c 0a 20 20 27 65 6d 70 74 79 20 73 74 72 69 6e 67 20 53 51 27 20 3d 3e 20 27 27 2c >."",...'empty.string.SQ'.=>.'',
6700 0a 20 20 27 75 70 70 65 72 63 61 73 65 20 4e 55 4c 4c 27 20 3d 3e 20 4e 55 4c 4c 2c 0a 20 20 27 ...'uppercase.NULL'.=>.NULL,...'
6720 6c 6f 77 65 72 63 61 73 65 20 6e 75 6c 6c 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 20 20 29 3b 66 75 6e lowercase.null'.=>.null,...);fun
6740 63 74 69 6f 6e 20 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 24 65 72 72 5f 6e 6f ction.test_error_handler($err_no
6760 2c 20 24 65 72 72 5f 6d 73 67 2c 20 24 66 69 6c 65 6e 61 6d 65 2c 20 24 6c 69 6e 65 6e 75 6d 2c ,.$err_msg,.$filename,.$linenum,
6780 20 24 76 61 72 73 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 6f 72 5f 72 65 70 6f .$vars).{.........if.(error_repo
67a0 72 74 69 6e 67 28 29 20 21 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rting().!=.0).{.................
67c0 2f 2f 20 72 65 70 6f 72 74 20 6e 6f 6e 2d 73 69 6c 65 6e 63 65 64 20 65 72 72 6f 72 73 0a 20 20 //.report.non-silenced.errors...
67e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 45 72 72 6f 72 3a 20 24 65 72 72 5f ..............echo."Error:.$err_
6800 6e 6f 20 2d 20 24 65 72 72 5f 6d 73 67 2c 20 24 66 69 6c 65 6e 61 6d 65 28 24 6c 69 6e 65 6e 75 no.-.$err_msg,.$filename($linenu
6820 6d 29 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 7d 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e m)\n";.........}.}.set_error_han
6840 64 6c 65 72 28 27 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 27 29 3b 0a 0a 0a 0a 63 dler('test_error_handler');....c
6860 6c 61 73 73 20 63 6c 61 73 73 57 69 74 68 54 6f 53 74 72 69 6e 67 0a 7b 0a 20 20 20 20 20 20 20 lass.classWithToString.{........
6880 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 20 7b 0a .public.function.__toString().{.
68a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 43 6c 61 73 73 20 41 20 ................return."Class.A.
68c0 6f 62 6a 65 63 74 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 7d 0a 0a 63 6c 61 73 73 20 63 6c 61 73 object";.........}.}..class.clas
68e0 73 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 0a 7b 0a 7d 0a 0a 24 76 61 72 69 61 74 69 6f 6e sWithoutToString.{.}..$variation
6900 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 _array.=.array(...'instance.of.c
6920 6c 61 73 73 57 69 74 68 54 6f 53 74 72 69 6e 67 27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 69 lassWithToString'.=>.new.classWi
6940 74 68 54 6f 53 74 72 69 6e 67 28 29 2c 0a 20 20 27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 6c 61 thToString(),...'instance.of.cla
6960 73 73 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 ssWithoutToString'.=>.new.classW
6980 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 28 29 2c 0a 20 20 29 3b 24 76 61 72 69 61 74 69 6f 6e ithoutToString(),...);$variation
69a0 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 27 69 6e 74 20 30 27 20 3d 3e 20 _array.=.array.(.....'int.0'.=>.
69c0 30 2c 0a 20 20 20 20 27 69 6e 74 20 31 27 20 3d 3e 20 31 2c 0a 20 20 20 20 27 69 6e 74 20 31 32 0,.....'int.1'.=>.1,.....'int.12
69e0 33 34 35 27 20 3d 3e 20 31 32 33 34 35 2c 0a 20 20 20 20 27 69 6e 74 20 2d 31 32 33 34 35 27 20 345'.=>.12345,.....'int.-12345'.
6a00 3d 3e 20 2d 32 33 34 35 2c 0a 20 20 20 20 29 3b 3c 3f 70 68 70 0a 61 62 73 74 72 61 63 74 20 63 =>.-2345,.....);<?php.abstract.c
6a20 6c 61 73 73 20 67 74 54 65 73 74 53 75 62 6a 65 63 74 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 lass.gtTestSubject.{....protecte
6a40 64 20 24 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 70 72 6f 74 d.$optionalArgumentNames;...prot
6a60 65 63 74 65 64 20 24 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 0a ected.$mandatoryArgumentNames;..
6a80 20 20 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d ..protected.$extraArgumentList.=
6aa0 20 27 27 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c .'';...protected.$shortArgumentL
6ac0 69 73 74 20 3d 20 27 27 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 65 64 41 ist.=.'';....protected.$allowedA
6ae0 72 67 75 6d 65 6e 74 4c 69 73 74 73 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6d 61 78 69 rgumentLists;....protected.$maxi
6b00 6d 75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 mumArgumentList;......protected.
6b20 24 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 20 20 2f $initialisationStatements;...../
6b40 2a 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6d 61 6e 64 61 74 **.Return.the.list.of.all.mandat
6b60 6f 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 ory.argument.names....*....*.@re
6b80 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 turn.array....*/...public.functi
6ba0 6f 6e 20 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b on.getMandatoryArgumentNames().{
6bc0 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 .....return.$this->mandatoryArgu
6be0 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 mentNames;...}...../**....*.Retu
6c00 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 rn.the.list.of.all.optional.argu
6c20 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 ment.names....*....*.@return.arr
6c40 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 ay....*/...public.function.getOp
6c60 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 tionalArgumentNames().{.....retu
6c80 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b rn.$this->optionalArgumentNames;
6ca0 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 ...}......public.function.setArg
6cc0 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 65 74 56 61 6c umentLists().{.....$this->setVal
6ce0 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 65 idArgumentLists();.....$this->se
6d00 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d tExtraArgumentList();.....$this-
6d20 3e 73 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 7d 0a 0a 20 20 >setShortArgumentList();...}....
6d40 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 /**....*.Set.the.argument.list.t
6d60 6f 20 63 61 6c 6c 20 74 68 65 20 73 75 62 6a 65 63 74 20 77 69 74 68 2e 20 41 64 64 73 20 6f 6e o.call.the.subject.with..Adds.on
6d80 65 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 e.extra.argument.....*....*/...p
6da0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c ublic.function.setExtraArgumentL
6dc0 69 73 74 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e ist().{.....if(count.($this->man
6de0 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 datoryArgumentNames).>.0).{.....
6e00 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 ..for(.$i.=.0;.$i.<.count(.$this
6e20 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b ->mandatoryArgumentNames.);.$i++
6e40 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 ).{.........$this->extraArgument
6e60 4c 69 73 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 List..=."\$".$this->mandatoryArg
6e80 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 umentNames[$i].",.";.......}....
6ea0 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6f 70 .}...........if(count.($this->op
6ec0 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 tionalArgumentNames).>.0).{.....
6ee0 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 ..for(.$i.=.0;.$i.<.count(.$this
6f00 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 ->optionalArgumentNames.);.$i++)
6f20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c .{.........$this->extraArgumentL
6f40 69 73 74 20 2e 3d 20 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 ist..=.."\$".$this->optionalArgu
6f60 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 mentNames[$i].",.";.......}.....
6f80 7d 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3d }......$this->extraArgumentList=
6fa0 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 2e 20 22 5c 24 65 78 .$this->extraArgumentList.."\$ex
6fc0 74 72 61 5f 61 72 67 22 3b 0a 20 20 7d 0a 20 20 20 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 tra_arg";...}......../**....*.Re
6fe0 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 69 74 turn.the.list.of.arguments.as.it
7000 20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 0a 20 20 .appears.in.the.function.call...
7020 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f 66 .*....*.@return.string.-.list.of
7040 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .arguments....*/...public.functi
7060 6f 6e 20 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 on.getExtraArgumentList().{.....
7080 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b return.$this->extraArgumentList;
70a0 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6c 69 73 74 20 6f ...}...../**....*.Set.the.list.o
70c0 66 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 62 65 20 6f 6e 65 20 6c f.function.arguments.to.be.one.l
70e0 65 73 73 20 74 68 61 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 61 6e 64 61 74 6f 72 79 ess.that.the.number.of.mandatory
7100 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 .arguments....*....*/...public.f
7120 75 6e 63 74 69 6f 6e 20 73 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b unction.setShortArgumentList().{
7140 0a 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 ......if(count.($this->mandatory
7160 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 28 ArgumentNames).>.0).{.......for(
7180 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 6e 64 .$i.=.0;.$i.<.count(.$this->mand
71a0 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 20 2d 20 31 3b 20 24 69 2b 2b 29 20 atoryArgumentNames.).-.1;.$i++).
71c0 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 {.........$this->shortArgumentLi
71e0 73 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d st..=."\$".$this->mandatoryArgum
7200 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 entNames[$i].",.";.......}......
7220 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 75 62 73 .$this->shortArgumentList.=.subs
7240 74 72 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 2c 20 30 2c 20 tr($this->shortArgumentList,.0,.
7260 2d 32 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 -2);.....}...}...../**....*.Retu
7280 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 0a 20 rn.the.short.list.of.arguments..
72a0 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f ..*....*.@return.string.-.list.o
72c0 66 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 f.arguments....*/...public.funct
72e0 69 6f 6e 20 67 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 ion.getShortArgumentList().{....
7300 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 .return.$this->shortArgumentList
7320 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 ;...}...../**....*.Construct.the
7340 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 77 61 79 73 20 74 6f 20 63 61 .list.of.all.possible.ways.to.ca
7360 6c 6c 20 74 68 65 20 73 75 62 6a 65 63 74 20 28 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 ll.the.subject.(function.or.meth
7380 6f 64 29 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e od)....*....*/...public.function
73a0 20 73 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a 20 20 20 20 24 .setValidArgumentLists().{.....$
73c0 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 30 5d 20 3d 20 this->allowedArgumentLists[0].=.
73e0 27 27 3b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f '';.....if(count.($this->mandato
7400 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f ryArgumentNames).>.0).{.......fo
7420 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 r(.$i.=.0;.$i.<.count(.$this->ma
7440 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 7b 0a ndatoryArgumentNames.);.$i++).{.
7460 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 ........$this->allowedArgumentLi
7480 73 74 73 5b 30 5d 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 sts[0]..=."\$".$this->mandatoryA
74a0 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 rgumentNames[$i].",.";.......}..
74c0 20 20 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e ...}...........if(count.($this->
74e0 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 optionalArgumentNames).>.0).{...
7500 20 20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 ....for(.$i.=.0;.$i.<.count(.$th
7520 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b is->optionalArgumentNames.);.$i+
7540 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d +).{.........$this->allowedArgum
7560 65 6e 74 4c 69 73 74 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d entLists[].=.$this->allowedArgum
7580 65 6e 74 4c 69 73 74 73 5b 24 69 5d 2e 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 entLists[$i]."\$".$this->optiona
75a0 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 20 lArgumentNames[$i].",.";........
75c0 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 24 69 5d .$this->allowedArgumentLists[$i]
75e0 20 3d 20 73 75 62 73 74 72 20 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e .=.substr.($this->allowedArgumen
7600 74 4c 69 73 74 73 5b 24 69 5d 2c 20 30 2c 20 2d 32 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 tLists[$i],.0,.-2);.......}.....
7620 7d 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 }......$this->allowedArgumentLis
7640 74 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c ts[count($this->allowedArgumentL
7660 69 73 74 73 29 20 2d 31 20 5d 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 ists).-1.].=.substr($this->allow
7680 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 6c 6c edArgumentLists[count($this->all
76a0 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 29 20 2d 31 20 5d 2c 20 30 2c 20 2d 32 29 3b owedArgumentLists).-1.],.0,.-2);
76c0 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 61 72 72 ...}...../**....*.Return.the.arr
76e0 61 79 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 73 65 74 73 20 6f 66 20 6d 65 74 68 6f ay.of.all.possible.sets.of.metho
7700 64 2f 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 d/function.arguments....*....*.@
7720 72 65 74 75 72 6e 20 75 6e 6b 6e 6f 77 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 return.unknown....*/...public.fu
7740 6e 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b nction.getValidArgumentLists().{
7760 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 .....return.$this->allowedArgume
7780 6e 74 4c 69 73 74 73 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e ntLists;...}...../**....*.Return
77a0 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 77 69 74 68 20 74 65 68 20 67 72 65 s.the.argument.list.with.teh.gre
77c0 61 74 65 73 74 20 70 6f 73 73 69 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e atest.possible.number.of.argumen
77e0 74 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 ts.....*....*.@return.string....
7800 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 61 78 69 6d 75 6d 41 */...public.function.getMaximumA
7820 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6e 64 28 24 rgumentList().{.....return.end($
7840 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 29 3b 0a 20 20 7d this->allowedArgumentLists);...}
7860 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 57 72 69 74 65 20 69 6e 69 74 69 61 6c 69 73 61 74 69 ...../**....*.Write.initialisati
7880 6f 6e 20 73 74 61 74 65 6d 65 6e 73 74 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 76 61 72 69 61 62 on.statemenst.for.all.the.variab
78a0 6c 65 73 20 74 68 61 74 20 6d 69 67 68 74 20 62 65 20 75 73 65 64 0a 20 20 20 2a 0a 20 20 20 2a les.that.might.be.used....*....*
78c0 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 69 74 69 61 6c 69 73 /...public.function.setInitialis
78e0 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 ationStatements().{.....if(count
7900 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 .($this->mandatoryArgumentNames)
7920 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 2d 3e 6d 61 .>.0).{.......foreach(.$this->ma
7940 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b ndatoryArgumentNames.as.$name).{
7960 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 .........$this->initialisationSt
7980 61 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 atements[].=."\$".$name.".=.";..
79a0 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 .....}.....}.....if(count.($this
79c0 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a ->optionalArgumentNames).>.0).{.
79e0 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 ......foreach(.$this->optionalAr
7a00 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 gumentNames.as.$name).{.........
7a20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 5b $this->initialisationStatements[
7a40 5d 20 3d 20 22 5c 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 ].=."\$".$name.".=.";.......}...
7a60 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 ..}...}....../**....*.Return.the
7a80 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 0a 20 20 20 2a 0a .initialisation.statements....*.
7aa0 20 20 20 2a 20 40 72 65 74 75 72 6e 20 75 6e 6b 6e 6f 77 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 ...*.@return.unknown....*/...pub
7ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 lic.function.getInitialisationSt
7ae0 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 atements().{.....return.$this->i
7b00 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d 0a 3f nitialisationStatements;...}.}.?
7b20 3e 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 43 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 ><?php./**..*.Container.for.all.
7b40 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 66 6f possible.variation.test.cases.fo
7b60 72 20 61 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e r.a.method..*/.class.gtVariation
7b80 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 ContainerMethod.extends.gtVariat
7ba0 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 7b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6d ionContainer.{......protected.$m
7bc0 65 74 68 6f 64 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 ethod;...protected.$optionalSect
7be0 69 6f 6e 73 3b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ions;......public.function.__con
7c00 73 74 72 75 63 74 28 24 6f 73 6c 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e struct($osl).{.....$this->option
7c20 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 73 6c 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f alSections.=.$osl;...}........./
7c40 2a 2a 0a 20 20 20 2a 20 53 65 74 73 20 74 68 65 20 6d 65 74 68 6f 64 20 74 6f 20 62 65 20 74 65 **....*.Sets.the.method.to.be.te
7c60 73 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 74 68 6f 64 20 24 sted....*....*.@param.gtMethod.$
7c80 6d 65 74 68 6f 64 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 method....*/...public.function.s
7ca0 65 74 4d 65 74 68 6f 64 28 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 etMethod(gtMethod.$method).{....
7cc0 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 20 3d 20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 20 20 .$this->method.=.$method;...}...
7ce0 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 61 6c 6c 20 76 61 ....../**....*.Constructs.all.va
7d00 72 69 61 74 69 6f 6e 20 74 65 73 74 73 20 69 6e 20 24 74 68 69 73 5f 76 61 72 69 61 74 69 6f 6e riation.tests.in.$this_variation
7d20 54 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Tests....*....*/...public.functi
7d40 6f 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c 28 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 24 6e 75 on.constructAll().{..........$nu
7d60 6d 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6d mberOfArguments.=.count($this->m
7d80 65 74 68 6f 64 2d 3e 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 ethod->getMandatoryArgumentNames
7da0 28 29 29 20 2b 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 2d 3e 67 65 74 4f 70 ()).+.count($this->method->getOp
7dc0 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 29 3b 0a 20 20 20 20 0a 20 20 20 tionalArgumentNames());.........
7de0 20 66 6f 72 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d 20 24 6e 75 6d 62 65 72 4f 66 41 72 67 75 .for($i.=.1;.$i.<=.$numberOfArgu
7e00 6d 65 6e 74 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 66 6f 72 65 ments;.$i++).{..............fore
7e20 61 63 68 20 28 24 74 68 69 73 2d 3e 64 61 74 61 54 79 70 65 73 20 61 73 20 24 64 29 20 7b 0a 20 ach.($this->dataTypes.as.$d).{..
7e40 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 56 61 ................$testCase.=.gtVa
7e60 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 28 24 74 68 riationTestCase::getInstance($th
7e80 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b is->optionalSections,.'method');
7ea0 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 73 2d .........$testCase->setUp($this-
7ec0 3e 6d 65 74 68 6f 64 2c 20 24 69 2c 20 24 64 29 3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 >method,.$i,.$d);.........$testC
7ee0 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 20 20 20 20 ase->constructTestCase();.......
7f00 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 5b 5d 20 3d 20 24 74 65 73 ..$this->variationTests[].=.$tes
7f20 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 tCase->toString();..............
7f40 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 ..}.....}...}...}.?><?php../**..
7f60 2a 20 43 6c 61 73 73 20 66 6f 72 20 62 61 73 69 63 20 74 65 73 74 20 63 61 73 65 20 63 6f 6e 73 *.Class.for.basic.test.case.cons
7f80 74 72 75 63 74 69 6f 6e 20 66 6f 72 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 73 0a 20 2a 2f 0a 63 truction.for.class.methods..*/.c
7fa0 6c 61 73 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 78 74 65 6e lass.gtBasicTestCaseMethod.exten
7fc0 64 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 ds.gtBasicTestCase.{....public.f
7fe0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 unction.__construct($opt).{.....
8000 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a $this->optionalSections.=.$opt;.
8020 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6d 65 74 68 6f 64 20 0a ..}..../**....*.Set.the.method..
8040 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f ...*....*.@param.gtMethod.$metho
8060 64 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 74 d....*/...public.function.setMet
8080 68 6f 64 28 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 hod($method).{.....$this->subjec
80a0 74 20 3d 20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 20 20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 t.=.$method;...}....public.funct
80c0 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 ion.constructTestCase().{.....$t
80e0 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 0a his->constructCommonHeaders();..
8100 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 42 61 73 69 63 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a ....$this->addBasicEcho();......
8120 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 3b ....$this->constructorArgInit();
8140 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 74 65 49 6e 73 .....$this->constructorCreateIns
8160 74 61 6e 63 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 tance();..........$this->constru
8180 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 ctSubjectCalls();..........$this
81a0 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 ->constructCommonClosing();.....
81c0 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 ...}....public.function.testHead
81e0 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 er().{.....$this->testCase[].=."
8200 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d --TEST--";.....$this->testCase[]
8220 20 3d 20 22 54 65 73 74 20 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d .=."Test.class.".$this->subject-
8240 3e 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 20 22 2e 24 74 68 69 >getClassName().".method..".$thi
8260 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c s->subject->getName()."().by.cal
8280 6c 69 6e 67 20 69 74 20 77 69 74 68 20 69 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 ling.it.with.its.expected.argume
82a0 6e 74 73 22 3b 0a 20 20 20 20 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 nts";........}......public.funct
82c0 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 6c 69 73 74 73 20 ion.subjectCalls().{.....$lists.
82e0 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 =.$this->subject->getValidArgume
8300 6e 74 4c 69 73 74 73 28 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 6c 69 73 74 73 20 61 ntLists();......foreach($lists.a
8320 73 20 24 6c 69 73 74 29 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b s.$list){.......$this->testCase[
8340 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 20 5c 24 63 6c 61 73 73 2d 3e 22 2e 24 74 68 69 73 2d ].=."var_dump(.\$class->".$this-
8360 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 >subject->getName()."(.".$list."
8380 20 29 20 29 3b 22 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 .).);";.......$this->testCase.=.
83a0 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 gtCodeSnippet::appendBlankLines(
83c0 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 1,.$this->testCase.);.....}.....
83e0 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a $this->testCase.=.gtCodeSnippet:
8400 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 :appendBlankLines(2,.$this->test
8420 43 61 73 65 20 29 3b 20 20 20 20 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a Case.);.......}..}.?><?php../**.
8440 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 73 69 6d 70 6c 65 20 65 72 72 6f 72 73 20 2d 20 6f 6e 65 .*.Class.for.simple.errors.-.one
8460 20 74 6f 6f 20 6d 61 6e 79 20 61 72 67 73 20 61 6e 64 20 6f 6e 65 20 74 6f 6f 20 66 65 77 0a 20 .too.many.args.and.one.too.few..
8480 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 */..abstract.class.gtErrorTestCa
84a0 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f 74 65 se.extends.gtTestCase.{....prote
84c0 63 74 65 64 20 24 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 cted.$shortArgumentList.=.'';...
84e0 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 6e 67 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 27 27 protected.$longArgumentList.=.''
8500 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 69 6e 73 74 61 6e 63 65 20 6f ;...../**....*.Return.instance.o
8520 66 20 65 69 74 68 65 72 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f f.either.method.or.function.erro
8540 72 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 r.test.case....*....*.@param.str
8560 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 ing.$type....*.@return.test.case
8580 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 .object....*/...public.static.fu
85a0 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 nction.getInstance($optionalSect
85c0 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 ions,.$type.=.'function').{.....
85e0 20 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a ......if($type.==.'function').{.
8600 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 ......return.new.gtErrorTestCase
8620 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 Function($optionalSections);....
8640 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 .}.....if($type.=='method').{...
8660 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 ....return.new.gtErrorTestCaseMe
8680 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 0a thod($optionalSections);.....}..
86a0 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 41 ..}....public.function.getShortA
86c0 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 rgumentList().{.....return.$this
86e0 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c ->shortArgumentList;...}....publ
8700 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 ic.function.getLongArgumentList(
8720 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 6e 67 41 72 67 75 6d 65 ).{.....return.$this->longArgume
8740 6e 74 4c 69 73 74 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ntList;...}......public.function
8760 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 .constructSubjectCalls().{.....$
8780 74 68 69 73 2d 3e 61 72 67 49 6e 69 74 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2f 49 6e 69 74 this->argInit();..........//Init
87a0 69 61 6c 69 73 65 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 0a 20 ialise.the.additional.argument..
87c0 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 5c 24 65 78 74 72 61 5f ...$this->testCase[].=."\$extra_
87e0 61 72 67 20 3d 20 22 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 arg.=.";..........$this->subject
8800 43 61 6c 6c 73 28 29 3b 0a 20 20 7d 0a 20 20 0a 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Calls();...}.....public.function
8820 20 61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 .addErrorEcho().{.....$this->tes
8840 74 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20 5c 22 2a 2a 2a 20 54 65 73 74 20 62 79 20 63 61 tCase[].=."echo.\"***.Test.by.ca
8860 6c 6c 69 6e 67 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69 6e lling.method.or.function.with.in
8880 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 2a 2a 2a correct.numbers.of.arguments.***
88a0 5c 5c 6e 5c 22 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 \\n\"";.....$this->testCase.=.gt
88c0 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c CodeSnippet::appendBlankLines(1,
88e0 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 7d 0a 0a 3f 3e 3c 3f 70 .$this->testCase.);...}.}..?><?p
8900 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 61 6c 6c 20 74 65 73 74 20 63 61 hp../**..*.Class.for.all.test.ca
8920 73 65 73 0a 20 2a 2f 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 54 65 73 74 43 61 73 ses..*/.abstract.class.gtTestCas
8940 65 20 7b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 e.{...../**....*.The.subject.of.
8960 74 68 65 20 74 65 73 74 2c 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 61 20 66 75 6e 63 74 69 the.test,.may.be.either.a.functi
8980 6f 6e 20 28 67 74 46 75 6e 63 74 69 6f 6e 29 20 6f 72 20 61 20 6d 65 74 68 6f 64 20 28 67 74 4d on.(gtFunction).or.a.method.(gtM
89a0 65 74 68 6f 64 29 0a 20 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 67 74 4d 65 74 68 6f 64 20 6f ethod)....*....*.@var.gtMethod.o
89c0 72 20 67 74 46 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 r.gtFunction....*/...protected.$
89e0 73 75 62 6a 65 63 74 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 72 72 79 20 6f 66 20 73 74 subject;...../**....*.Arry.of.st
8a00 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 rings.containing.the.test.case..
8a20 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 ..*....*.@var.array....*/...prot
8a40 65 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 4f 62 ected.$testCase;...../**....*.Ob
8a60 6a 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 65 68 20 6f 6f 70 74 69 6f 6e 61 6c 20 73 65 ject.containing.teh.ooptional.se
8a80 63 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 ctions.that.may.be.added.to.the.
8aa0 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 67 74 4f 70 74 69 6f test.case....*....*.@var.gtOptio
8ac0 6e 61 6c 53 65 63 74 69 6f 6e 73 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f nalSections....*/...protected.$o
8ae0 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f ptionalSections;...../**....*.Co
8b00 6e 76 65 72 74 20 74 65 73 74 20 63 61 73 65 20 66 72 6f 6d 20 61 72 72 61 79 20 74 6f 20 73 74 nvert.test.case.from.array.to.st
8b20 72 69 6e 67 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 ring....*....*.@return.string...
8b40 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 53 74 72 69 6e 67 28 29 .*/...public.function.toString()
8b60 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 53 74 72 69 6e 67 20 3d 20 22 22 3b 0a 20 20 20 .{.....$testCaseString.=."";....
8b80 20 66 6f 72 65 61 63 68 28 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 61 73 20 24 6c 69 6e .foreach($this->testCase.as.$lin
8ba0 65 29 20 7b 0a 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 53 74 72 69 6e 67 20 2e 3d 20 24 6c e).{.......$testCaseString..=.$l
8bc0 69 6e 65 2e 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 65 73 74 ine."\n";.....}.....return.$test
8be0 43 61 73 65 53 74 72 69 6e 67 3b 0a 20 20 7d 0a 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 CaseString;...}....../**....*.Re
8c00 74 75 72 6e 73 20 74 65 73 74 20 63 61 73 65 20 61 73 20 61 20 61 72 72 61 79 0a 20 20 20 2a 0a turns.test.case.as.a.array....*.
8c20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 ...*.@return.array....*/...publi
8c40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 72 c.function.getTestCase().{.....r
8c60 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 3b 0a 20 20 7d 0a 0a 0a 20 20 2f eturn.$this->testCase;...}...../
8c80 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 68 65 61 **....*.Construct.the.common.hea
8ca0 64 65 72 73 20 28 74 69 74 6c 65 2c 20 66 69 6c 65 20 73 65 63 74 69 6f 6e 2e 2e 29 20 6f 66 20 ders.(title,.file.section..).of.
8cc0 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 the.test.case....*....*/...publi
8ce0 63 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 c.function.ConstructCommonHeader
8d00 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 48 65 61 64 65 72 28 29 3b 0a 0a s().{.....$this->testHeader();..
8d20 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e ....if($this->optionalSections->
8d40 68 61 73 53 6b 69 70 69 66 28 29 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 53 hasSkipif()).{.......$this->addS
8d60 6b 69 70 69 66 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 kipif();.....}......if($this->op
8d80 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 49 6e 69 28 29 29 20 7b 0a 20 20 20 20 tionalSections->hasIni()).{.....
8da0 20 20 24 74 68 69 73 2d 3e 61 64 64 49 6e 69 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 74 ..$this->addIni();.....}......$t
8dc0 68 69 73 2d 3e 66 69 6c 65 4f 70 65 6e 69 6e 67 28 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a his->fileOpening();...}...../**.
8de0 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 63 6c 6f 73 69 6e ...*.Construct.the.common.closin
8e00 67 20 73 74 61 74 65 6d 65 6e 74 73 20 28 63 6c 65 61 6e 2c 20 64 6f 6e 65 2c 20 45 58 50 45 43 g.statements.(clean,.done,.EXPEC
8e20 54 46 2e 2e 2e 29 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 TF...)....*....*/...public.funct
8e40 69 6f 6e 20 43 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 20 7b 0a 20 ion.ConstructCommonClosing().{..
8e60 20 20 20 24 74 68 69 73 2d 3e 66 69 6c 65 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 20 0a 20 ...$this->fileClosing();........
8e80 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e ...if.($this->optionalSections->
8ea0 68 61 73 44 6f 6e 65 28 29 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 44 6f 6e hasDone()).{.......$this->addDon
8ec0 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e e();.....}...........if.($this->
8ee0 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 43 6c 65 61 6e 28 29 29 20 7b 0a optionalSections->hasClean()).{.
8f00 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 43 6c 65 61 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a ......$this->addClean();.....}..
8f20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 78 70 65 63 74 66 28 29 3b 0a 20 20 7d 0a 0a 20 20 ....$this->addExpectf();...}....
8f40 2f 2a 2a 0a 20 20 20 2a 20 53 74 61 72 74 20 74 68 65 20 46 49 4c 45 20 73 65 63 74 69 6f 6e 20 /**....*.Start.the.FILE.section.
8f60 6f 66 20 74 68 65 20 74 65 73 74 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 of.the.test....*....*/...public.
8f80 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 4f 70 65 6e 69 6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 function.fileOpening().{.....$th
8fa0 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 46 49 4c 45 2d 2d 22 3b 0a 20 20 20 is->testCase[].=."--FILE--";....
8fc0 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 .$this->testCase[].=."<?php";...
8fe0 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 ..$this->testCase.=.gtCodeSnippe
9000 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 t::appendBlankLines(2,.$this->te
9020 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 63 stCase.);...}...../**....*.Add.c
9040 6f 6e 73 74 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 20 69 6e 69 74 69 61 6c 69 73 61 74 69 onstructor.argument.initialisati
9060 6f 6e 20 74 6f 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 on.to.test.case....*....*/...pub
9080 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 lic.function.constructorArgInit(
90a0 29 20 7b 0a 20 20 20 20 24 63 6f 6e 53 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e ).{.....$conStatements.=.$this->
90c0 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 49 6e 69 74 53 74 61 74 65 subject->getConstructorInitState
90e0 6d 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 63 6f 6e 53 74 61 74 65 6d 65 ments();.....foreach($conStateme
9100 6e 74 73 20 61 73 20 24 73 74 61 74 65 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 nts.as.$statement).{.......$this
9120 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d ->testCase[].=.$statement;.....}
9140 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 20 69 6e 73 74 61 6e 63 ...}...../**....*.Create.instanc
9160 65 20 6f 66 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a e.of.class.in.the.test.case....*
9180 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 ....*/...public.function.constru
91a0 63 74 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 29 20 7b 0a 20 20 20 20 24 63 6f 6e 73 ctorCreateInstance().{.....$cons
91c0 74 72 75 63 74 6f 72 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 tructorList.=.$this->subject->ge
91e0 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 tConstructorArgumentList();.....
9200 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 5c 24 63 6c 61 73 73 20 3d 20 6e $this->testCase[].=."\$class.=.n
9220 65 77 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d ew.".$this->subject->getClassNam
9240 65 28 29 2e 22 28 20 22 2e 24 63 6f 6e 73 74 72 75 63 74 6f 72 4c 69 73 74 2e 22 20 29 3b 22 3b e()."(.".$constructorList.".);";
9260 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 .....$this->testCase.=.gtCodeSni
9280 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d ppet::appendBlankLines(2,.$this-
92a0 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 >testCase.);...}...../**....*.Ad
92c0 64 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 69 6e 69 74 69 6c 61 69 73 61 74 d.function.or.method.initilaisat
92e0 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a ion.statements.to.the.test.case.
9300 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 ...*....*/...public.function.arg
9320 49 6e 69 74 28 29 20 7b 0a 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 Init().{.....$statements.=.$this
9340 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 ->subject->getInitialisationStat
9360 65 6d 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 73 74 61 74 65 6d 65 6e 74 ements();.....foreach($statement
9380 73 20 61 73 20 24 73 74 61 74 65 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e s.as.$statement).{.......$this->
93a0 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d 0a 20 testCase[].=.$statement;.....}..
93c0 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 ...$this->testCase.=.gtCodeSnipp
93e0 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 et::appendBlankLines(2,.$this->t
9400 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 estCase.);...}...../**....*.Add.
9420 46 49 4c 45 20 73 65 63 74 69 6f 6e 20 63 6c 6f 73 69 6e 67 20 74 61 67 20 74 6f 20 74 65 68 20 FILE.section.closing.tag.to.teh.
9440 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 test.case....*....*/...public.fu
9460 6e 63 74 69 6f 6e 20 66 69 6c 65 43 6c 6f 73 69 6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 nction.fileClosing().{.....$this
9480 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a ->testCase[].=."?>";...}...../**
94a0 0a 20 20 20 2a 20 41 64 64 20 61 20 73 6b 69 70 69 66 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 ....*.Add.a.skipif.section.to.th
94c0 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 e.test.case....*....*/...public.
94e0 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 6b 69 70 69 66 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 function.addSkipif().{.....$this
9500 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 53 4b 49 50 49 46 2d 2d 22 3b 0a 20 20 20 ->testCase[].=."--SKIPIF--";....
9520 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 .$this->testCase[].=."<?php";...
9540 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 ..if($this->optionalSections->ha
9560 73 53 6b 69 70 69 66 4b 65 79 28 29 29 20 7b 0a 20 20 20 20 20 20 24 6b 65 79 20 3d 20 24 74 68 sSkipifKey()).{.......$key.=.$th
9580 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 67 65 74 53 6b 69 70 69 66 4b is->optionalSections->getSkipifK
95a0 65 79 28 29 3b 0a 20 20 20 20 20 20 2f 2f 74 65 73 74 20 73 74 61 6e 64 61 72 64 20 73 6b 69 70 ey();.......//test.standard.skip
95c0 69 66 20 73 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 77 69 if.sections.......if($key.==.'wi
95e0 6e 27 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 n').{.........$this->testCase.=.
9600 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 77 69 6e gtCodeSnippet::append('skipifwin
9620 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 ',.$this->testCase);.......}....
9640 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 6e 6f 74 77 69 6e 27 20 29 20 7b 0a 20 20 20 20 20 ...if($key.==.'notwin'.).{......
9660 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 ...$this->testCase.=.gtCodeSnipp
9680 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 6e 6f 74 77 69 6e 27 2c 20 24 74 68 69 73 et::append('skipifnotwin',.$this
96a0 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 28 24 ->testCase);.......}........if($
96c0 6b 65 79 20 3d 3d 20 27 36 34 62 27 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e key.==.'64b'.).{.........$this->
96e0 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 testCase.=.gtCodeSnippet::append
9700 28 27 73 6b 69 70 69 66 36 34 62 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a ('skipif64b',.$this->testCase);.
9720 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 6e 6f 74 36 34 ......}........if($key.==.'not64
9740 62 27 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d b'.).{.........$this->testCase.=
9760 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 6e 6f .gtCodeSnippet::append('skipifno
9780 74 36 34 62 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d t64b',.$this->testCase);.......}
97a0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 .....}......if($this->optionalSe
97c0 63 74 69 6f 6e 73 2d 3e 68 61 73 53 6b 69 70 69 66 45 78 74 28 29 29 20 7b 0a 20 20 20 20 20 20 ctions->hasSkipifExt()).{.......
97e0 24 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e $ext.=.$this->optionalSections->
9800 67 65 74 53 6b 69 70 69 66 45 78 74 28 29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 getSkipifExt();.......$this->tes
9820 74 43 61 73 65 5b 5d 20 3d 20 22 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 tCase[].=."if.(!extension_loaded
9840 28 27 24 65 78 74 27 29 29 20 64 69 65 20 28 27 73 6b 69 70 20 24 65 78 74 20 65 78 74 65 6e 73 ('$ext')).die.('skip.$ext.extens
9860 69 6f 6e 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 69 73 20 62 75 69 6c 64 27 ion.not.available.in.this.build'
9880 29 3b 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d );";.....}.....$this->testCase[]
98a0 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 6e .=."?>";...}...../**....*.Add.an
98c0 20 49 4e 49 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 .INI.section.to.the.test.case...
98e0 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 49 6e .*....*/...public.function.addIn
9900 69 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d i().{.....$this->testCase[].=."-
9920 2d 49 4e 49 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d -INI--";.....$this->testCase[].=
9940 20 22 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 20 63 6c 65 61 ."";...}...../**....*.Add.a.clea
9960 6e 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a n.section.to.the.test.case....*.
9980 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 65 61 6e ...*/...public.function.addClean
99a0 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d ().{.....$this->testCase[].=."--
99c0 43 4c 45 41 4e 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 CLEAN--";.....$this->testCase[].
99e0 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d =."<?php";.....$this->testCase[]
9a00 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 20 .=."?>";...}...../**....*.Add.a.
9a20 3d 3d 3d 44 4f 4e 45 3d 3d 3d 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 74 68 65 20 74 65 73 74 ===DONE===.statement.to.the.test
9a40 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .case....*....*/...public.functi
9a60 6f 6e 20 61 64 64 44 6f 6e 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 on.addDone().{.....$this->testCa
9a80 73 65 5b 5d 20 3d 20 22 3d 3d 3d 44 4f 4e 45 3d 3d 3d 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a se[].=."===DONE===";...}...../**
9aa0 0a 20 20 20 2a 20 41 64 64 20 61 6e 20 45 58 50 45 43 54 46 20 73 65 63 74 69 6f 6e 0a 20 20 20 ....*.Add.an.EXPECTF.section....
9ac0 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 78 70 *....*/...public.function.addExp
9ae0 65 63 74 66 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d ectf().{.....$this->testCase[].=
9b00 20 22 2d 2d 45 58 50 45 43 54 46 2d 2d 22 3b 0a 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f ."--EXPECTF--";.....if.($this->o
9b20 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 44 6f 6e 65 28 29 20 29 7b 0a 20 20 ptionalSections->hasDone().){...
9b40 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 27 3d 3d 3d 44 4f 4e 45 ....$this->testCase[].=.'===DONE
9b60 3d 3d 3d 27 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ===';.....}...}....public.functi
9b80 6f 6e 20 67 65 74 4f 70 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getOpt().{.....return.$this->
9ba0 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a optionalSections;...}.}.?><?php.
9bc0 0a 2f 2a 2a 0a 20 2a 20 42 61 73 69 63 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 50 48 ./**..*.Basic.test.case.for.a.PH
9be0 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 42 61 73 69 63 54 P.function..*..*/.class.gtBasicT
9c00 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 42 61 73 69 63 54 estCaseFunction.extends.gtBasicT
9c20 65 73 74 43 61 73 65 20 7b 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f estCase.{.....public.function.__
9c40 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 construct($opt).{.....$this->opt
9c60 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a ionalSections.=.$opt;...}..../**
9c80 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 2a ....*.Set.the.function.name....*
9ca0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f ....*.@param.gtFunction.$functio
9cc0 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 6e n....*/...public.function.setFun
9ce0 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 ction($function).{.....$this->su
9d00 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 bject.=.$function;...}....public
9d20 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a .function.constructTestCase().{.
9d40 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 ....$this->constructCommonHeader
9d60 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 42 61 73 69 63 45 63 68 s();..........$this->addBasicEch
9d80 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 o();..........$this->constructSu
9da0 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f bjectCalls();..........$this->co
9dc0 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 0a 20 20 7d 0a nstructCommonClosing();.......}.
9de0 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 65 73 74 20 63 61 73 65 ..../**....*.Construct.test.case
9e00 20 68 65 61 64 65 72 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 .header....*....*/...public.func
9e20 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 2f 2f 4f 70 65 6e 69 6e tion.testHeader().{.....//Openin
9e40 67 20 73 65 63 74 69 6f 6e 20 61 6e 64 20 73 74 61 72 74 20 6f 66 20 74 65 73 74 20 63 61 73 65 g.section.and.start.of.test.case
9e60 20 61 72 72 61 79 2e 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 .array......$this->testCase[].=.
9e80 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b "--TEST--";.....$this->testCase[
9ea0 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a ].=."Test.function.".$this->subj
9ec0 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c 6c 69 6e 67 20 69 74 ect->getName()."().by.calling.it
9ee0 20 77 69 74 68 20 69 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 .with.its.expected.arguments";..
9f00 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 74 68 65 20 74 65 73 74 20 73 65 63 74 .}..../**....*.Add.the.test.sect
9f20 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 ion.to.call.the.function....*...
9f40 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c .*/...public.function.subjectCal
9f60 6c 73 28 29 20 7b 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 ls().{.....//.Construct.the.argu
9f80 6d 65 6e 74 20 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f ment.list.to.pass.to.the.functio
9fa0 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 73 20 3d 20 24 74 68 69 n.being.tested.....$lists.=.$thi
9fc0 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 s->subject->getValidArgumentList
9fe0 73 28 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 6c 69 73 74 73 20 61 73 20 24 6c 69 73 s();......foreach($lists.as.$lis
a000 74 29 7b 0a 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 t){........$this->testCase.=.gtC
a020 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 odeSnippet::appendBlankLines(1,.
a040 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e $this->testCase.);.......$this->
a060 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e testCase[].=."var_dump(".$this->
a080 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 subject->getName()."(.".$list.".
a0a0 29 20 29 3b 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 ).);";.....}.....$this->testCase
a0c0 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e .=.gtCodeSnippet::appendBlankLin
a0e0 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a es(2,.$this->testCase.);...}..}.
a100 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 45 72 72 6f 72 20 74 65 73 74 20 63 61 73 65 20 ?><?php../**..*.Error.test.case.
a120 66 6f 72 20 61 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 for.a.PHP.function..*..*/.class.
a140 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 gtErrorTestCaseFunction.extends.
a160 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 gtErrorTestCase.{....public.func
a180 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 tion.__construct($opt).{.....$th
a1a0 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d is->optionalSections.=.$opt;...}
a1c0 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 ..../**....*.Set.the.function.na
a1e0 6d 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e 63 me....*....*.@param.string.$func
a200 74 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 tion....*/...public.function.set
a220 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d Function($function).{.....$this-
a240 3e 73 75 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a >subject.=.$function;...}...../*
a260 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 *....*.Construct.the.test.case.a
a280 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f s.an.array.of.strings....*....*/
a2a0 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 ...public.function.constructTest
a2c0 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d Case().{.....$this->constructCom
a2e0 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 monHeaders();..........$this->ad
a300 64 45 72 72 6f 72 45 63 68 6f 28 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e dErrorEcho();............$this->
a320 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 constructSubjectCalls();........
a340 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 ..$this->constructCommonClosing(
a360 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 );........}.....public.function.
a380 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 testHeader().{.....$this->testCa
a3a0 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 se[].=."--TEST--";.....$this->te
a3c0 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 stCase[].=."Test.function.".$thi
a3e0 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c s->subject->getName()."().by.cal
a400 6c 69 6e 67 20 69 74 20 6d 6f 72 65 20 74 68 61 6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 ling.it.more.than.or.less.than.i
a420 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 0a 20 20 70 ts.expected.arguments";...}....p
a440 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a ublic.function.subjectCalls().{.
a460 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 ....//.Construct.the.argument.li
a480 73 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e sts.to.pass.to.the.function.bein
a4a0 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a g.tested.....$list.=.$this->subj
a4c0 65 63 74 2d 3e 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 ect->getExtraArgumentList();....
a4e0 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 .$this->testCase.=.gtCodeSnippet
a500 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 ::appendBlankLines(1,.$this->tes
a520 74 43 61 73 65 20 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d tCase.);.....$this->testCase[].=
a540 20 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 ."var_dump(".$this->subject->get
a560 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 0a 20 20 20 20 Name()."(.".$list.".).);";......
a580 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 53 68 6f 72 74 $list.=.$this->subject->getShort
a5a0 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 ArgumentList();.....$this->testC
a5c0 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b ase.=.gtCodeSnippet::appendBlank
a5e0 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 Lines(1,.$this->testCase.);.....
a600 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e $this->testCase[].=."var_dump(".
a620 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 $this->subject->getName()."(.".$
a640 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 list.".).);";.....$this->testCas
a660 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 e.=.gtCodeSnippet::appendBlankLi
a680 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d nes(2,.$this->testCase.);...}..}
a6a0 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 .?><?php../**..*.Class.for.varia
a6c0 74 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 61 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a tion.tests.for.a.PHP.function..*
a6e0 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 /.class.gtVariationTestCaseFunct
a700 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 ion.extends.gtVariationTestCase.
a720 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a {....protected.$argumentNumber;.
a740 20 20 70 72 6f 74 65 63 74 65 64 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70 72 ..protected.$variationData;...pr
a760 6f 74 65 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e otected.$testCase;....public.fun
a780 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 ction.__construct($opt).{.....$t
a7a0 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 his->optionalSections.=.$opt;...
a7c0 7d 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 64 61 74 61 20 6e 65 65 64 65 20 74 6f 20 63 }.../**....*.Set.data.neede.to.c
a7e0 6f 6e 73 74 72 75 63 74 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a 20 20 onstruct.variation.tests....*...
a800 20 2a 20 40 70 61 72 61 6d 20 67 74 66 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 .*.@param.gtfunction.$function..
a820 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 ..*.@param.string.$argumentNumbe
a840 72 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 76 61 72 69 61 74 69 6f 6e 44 r....*.@param.string.$variationD
a860 61 74 61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 ata....*/...public.function.setU
a880 70 28 67 74 66 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 61 72 67 75 6d 65 6e p(gtfunction.$function,.$argumen
a8a0 74 4e 75 6d 62 65 72 2c 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 29 20 7b 0a 20 20 20 20 24 tNumber,.$variationData).{.....$
a8c0 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 24 this->subject.=.$function;.....$
a8e0 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 3d 20 24 61 72 67 75 6d 65 6e 74 this->argumentNumber.=.$argument
a900 4e 75 6d 62 65 72 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 Number;.....$this->variationData
a920 20 3d 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a .=.$variationData;....}...../**.
a940 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 ...*.Constructs..the.test.case.a
a960 73 20 61 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a s.a.array.of.strings....*....*/.
a980 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 ..public.function.constructTestC
a9a0 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d ase().{.....$this->constructComm
a9c0 6f 6e 48 65 61 64 65 72 73 28 29 3b 20 0a 20 20 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e onHeaders();.............$this->
a9e0 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 addVariationEcho();..........$th
aa00 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 is->constructSubjectCalls();....
aa20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 ......$this->constructCommonClos
aa40 69 6e 67 28 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ing();........}...public.functio
aa60 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 n.testHeader().{.....$this->test
aa80 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e Case[].=."--TEST--";.....$this->
aaa0 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 testCase[].=."Test.function.".$t
aac0 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 73 his->subject->getName()."().by.s
aae0 75 62 73 74 69 74 75 74 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 ubstituting.argument.".$this->ar
ab00 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 77 69 74 68 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 gumentNumber.".with.".$this->var
ab20 69 61 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 6c 75 65 73 2e 22 3b 0a 20 20 7d 0a 0a 20 20 0a 20 iationData.".values.";...}......
ab40 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 .public.function.subjectCalls().
ab60 7b 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 {......$this->testCase.=.gtCodeS
ab80 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c 6f 6f 70 53 74 61 72 74 27 2c 20 24 74 68 69 nippet::append('loopStart',.$thi
aba0 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 s->testCase);......//.Construct.
abc0 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 the.argument.list.to.pass.to.the
abe0 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 61 72 67 75 .function.being.tested.....$argu
ac00 6d 65 6e 74 4c 69 73 74 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 2c 20 24 74 68 69 73 2d 3e 73 mentList.=.explode(",",.$this->s
ac20 75 62 6a 65 63 74 2d 3e 67 65 74 4d 61 78 69 6d 75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 ubject->getMaximumArgumentList()
ac40 29 3b 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 5b 24 74 68 69 73 2d 3e 61 72 67 75 );.....$argumentList[$this->argu
ac60 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 20 5d 20 3d 20 22 5c 24 76 61 72 20 22 3b 0a 20 20 20 20 mentNumber.-1.].=."\$var.";.....
ac80 24 6c 69 73 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 2c 20 22 2c 20 24 61 72 67 75 6d 65 6e 74 4c $list.=.implode(",.",.$argumentL
aca0 69 73 74 29 3b 0a 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 ist);.......$this->testCase[].=.
acc0 22 20 20 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 "..var_dump(".$this->subject->ge
ace0 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 tName()."(.".$list.".).);";.....
ad00 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a $this->testCase.=.gtCodeSnippet:
ad20 3a 61 70 70 65 6e 64 28 27 6c 6f 6f 70 43 6c 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 :append('loopClose',.$this->test
ad40 43 61 73 65 29 3b 0a 20 20 7d 0a 20 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a Case);...}.....}.?><?php../**..*
ad60 20 43 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 .Container.for.all.possible.vari
ad80 61 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 0a 20 2a ation.test.cases.of.functions..*
ada0 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 /.class.gtVariationContainerFunc
adc0 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 tion.extends.gtVariationContaine
ade0 72 20 7b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 r.{......protected.$function;...
ae00 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 20 20 0a protected.$optionalSections;....
ae20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f ..public.function.__construct($o
ae40 73 6c 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e sl).{.....$this->optionalSection
ae60 73 20 3d 20 24 6f 73 6c 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 73 s.=.$osl;...}....../**....*.Sets
ae80 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a .function.being.tested....*....*
aea0 20 40 70 61 72 61 6d 20 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 20 20 .@param.gtFunction.$function....
aec0 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 6e 63 74 69 6f 6e */...public.function.setFunction
aee0 28 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 (gtFunction.$function).{.....$th
af00 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 20 20 is->function.=.$function;...}...
af20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 63 6f 6e 73 74 72 75 63 74 73 20 61 6c 6c 20 70 6f ....../**....*.constructs.all.po
af40 73 73 69 62 6c 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 63 61 73 65 73 20 69 6e 20 61 72 ssible.variation.testcases.in.ar
af60 72 61 79 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 0a 20 20 20 2a 0a 20 ray.$this->variationTests....*..
af80 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 ..*/...public.function.construct
afa0 41 6c 6c 28 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 24 6e 75 6d 62 65 All().{...................$numbe
afc0 72 4f 66 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 75 6e 63 rOfArguments.=.count($this->func
afe0 74 69 6f 6e 2d 3e 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 tion->getMandatoryArgumentNames(
b000 29 29 20 2b 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 4f )).+.count($this->function->getO
b020 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 29 3b 0a 20 20 20 20 66 6f 72 ptionalArgumentNames());.....for
b040 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d 20 24 6e 75 6d 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 ($i.=.1;.$i.<=.$numberOfArgument
b060 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d s;.$i++).{.......foreach.($this-
b080 3e 64 61 74 61 54 79 70 65 73 20 61 73 20 24 64 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 65 73 >dataTypes.as.$d).{.........$tes
b0a0 74 43 61 73 65 20 3d 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 3a 3a 67 65 74 tCase.=.gtVariationTestCase::get
b0c0 49 6e 73 74 61 6e 63 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 Instance($this->optionalSections
b0e0 29 3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 );.........$testCase->setUp($thi
b100 73 2d 3e 66 75 6e 63 74 69 6f 6e 2c 20 24 69 2c 20 24 64 29 3b 0a 20 20 20 20 20 20 20 20 24 74 s->function,.$i,.$d);.........$t
b120 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 estCase->constructTestCase();...
b140 20 20 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 5b 5d 20 3d 20 ......$this->variationTests[].=.
b160 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 $testCase->toString();.......}..
b180 20 20 20 7d 0a 20 20 7d 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 45 72 72 ...}...}...}.?><?php../**..*.Err
b1a0 6f 72 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 50 48 50 20 6d 65 74 68 6f 64 0a 20 2a or.test.case.for.a.PHP.method..*
b1c0 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 ..*/.class.gtErrorTestCaseMethod
b1e0 20 65 78 74 65 6e 64 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 .extends.gtErrorTestCase.{....pu
b200 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 blic.function.__construct($opt).
b220 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 {.....$this->optionalSections.=.
b240 24 6f 70 74 3b 0a 20 20 7d 0a 20 20 70 72 69 76 61 74 65 20 24 6d 65 74 68 6f 64 3b 0a 0a 20 20 $opt;...}...private.$method;....
b260 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 0a 20 20 20 /**....*.Set.the.method.name....
b280 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6d 65 74 68 6f 64 0a 20 20 20 *....*.@param.string.$method....
b2a0 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 74 68 6f 64 28 24 */...public.function.setMethod($
b2c0 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 method).{.....$this->subject.=.$
b2e0 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 method;...}...../**....*.Constru
b300 63 74 20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 ct.the.test.case.as.an.array.of.
b320 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 strings....*....*/...public.func
b340 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 tion.constructTestCase().{.....$
b360 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a this->constructCommonHeaders();.
b380 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 3b 0a .........$this->addErrorEcho();.
b3a0 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e .........$this->constructorArgIn
b3c0 69 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 it();.....$this->constructorCrea
b3e0 74 65 49 6e 73 74 61 6e 63 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f teInstance();..........$this->co
b400 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 nstructSubjectCalls();..........
b420 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b $this->constructCommonClosing();
b440 0a 20 20 7d 0a 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 ...}.....public.function.testHea
b460 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 der().{.....$this->testCase[].=.
b480 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b "--TEST--";.....$this->testCase[
b4a0 5d 20 3d 20 22 54 65 73 74 20 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 ].=."Test.class.".$this->subject
b4c0 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 22 2e 24 74 68 69 ->getClassName().".method.".$thi
b4e0 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c s->subject->getName()."().by.cal
b500 6c 69 6e 67 20 69 74 20 6d 6f 72 65 20 74 68 61 6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 ling.it.more.than.or.less.than.i
b520 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 20 0a 20 20 ts.expected.arguments";...}.....
b540 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b public.function.subjectCalls().{
b560 0a 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 ......//.Construct.the.argument.
b580 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 6d 65 74 68 6f 64 20 62 65 69 6e 67 list.to.pass.to.the.method.being
b5a0 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 .tested.....$list.=.$this->subje
b5c0 63 74 2d 3e 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 ct->getExtraArgumentList();.....
b5e0 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a $this->testCase.=.gtCodeSnippet:
b600 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 :appendBlankLines(1,.$this->test
b620 43 61 73 65 20 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 Case.);.....$this->testCase[].=.
b640 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e "var_dump(".$this->subject->getN
b660 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 0a 20 ame()."(.".$list.".).);";.......
b680 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 53 68 ...$list.=.$this->subject->getSh
b6a0 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 ortArgumentList();.....$this->te
b6c0 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c stCase.=.gtCodeSnippet::appendBl
b6e0 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 ankLines(1,.$this->testCase.);..
b700 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 ...$this->testCase[].=."var_dump
b720 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 (".$this->subject->getName()."(.
b740 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 ".$list.".).);";......}.}.?><?ph
b760 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 62 61 73 69 63 20 74 65 73 74 20 63 p../**..*.Class.for.basic.test.c
b780 61 73 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 0a 20 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 ase.construction..*/..abstract.c
b7a0 6c 61 73 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 lass.gtBasicTestCase.extends.gtT
b7c0 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 75 62 6a 65 63 74 3b estCase.{....protected.$subject;
b7e0 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6e 20 69 6e 73 74 61 6e 63 ...../**....*.Returns.an.instanc
b800 65 20 6f 66 20 61 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 6d 65 74 68 6f 64 20 6f 72 e.of.a.test.case.for.a.method.or
b820 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 .a.function....*....*.@param.str
b840 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 ing.$type....*.@return.test.case
b860 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 .object....*/...public.static.fu
b880 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 nction.getInstance($optionalSect
b8a0 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 ions,.$type.=.'function').{.....
b8c0 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 20 if($type.==.'function').{.......
b8e0 72 65 74 75 72 6e 20 6e 65 77 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 return.new.gtBasicTestCaseFuncti
b900 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 on($optionalSections);.....}....
b920 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 20 20 20 20 72 65 .if($type.=='method').{.......re
b940 74 75 72 6e 20 6e 65 77 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 28 24 turn.new.gtBasicTestCaseMethod($
b960 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 0a optionalSections);.....}...}....
b980 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 ..public.function.constructSubje
b9a0 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 72 67 49 6e ctCalls().{.........$this->argIn
b9c0 69 74 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 43 61 6c 6c it();.........$this->subjectCall
b9e0 73 28 29 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 s();...}......public.function.ad
ba00 64 42 61 73 69 63 45 63 68 6f 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 dBasicEcho().{.....$this->testCa
ba20 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20 5c 22 2a 2a 2a 20 54 65 73 74 20 62 79 20 63 61 6c 6c 69 se[].=."echo.\"***.Test.by.calli
ba40 6e 67 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69 74 73 20 65 ng.method.or.function.with.its.e
ba60 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 20 2a 2a 2a 5c 5c 6e 5c 22 22 3b 0a 20 20 20 xpected.arguments.***\\n\"";....
ba80 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 .$this->testCase.=.gtCodeSnippet
baa0 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 ::appendBlankLines(1,.$this->tes
bac0 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 tCase.);...}.}.?><?php../**..*.C
bae0 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 ontainer.for.all.possible.variat
bb00 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 0a 20 2a 2f 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 ion.test.cases..*/.abstract.clas
bb20 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 7b 0a 20 20 0a 20 20 70 72 s.gtVariationContainer.{......pr
bb40 6f 74 65 63 74 65 64 20 24 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 3b 0a 20 20 0a 20 20 70 72 otected.$variationTests;......pr
bb60 6f 74 65 63 74 65 64 20 24 64 61 74 61 54 79 70 65 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 otected.$dataTypes.=.array.(....
bb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 61 72 72 61 79 27 2c 0a 20 ......................'array',..
bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 6f 6f 6c 65 61 6e ........................'boolean
bbc0 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 70 ',..........................'emp
bbe0 74 79 55 6e 73 65 74 55 6e 64 65 66 4e 75 6c 6c 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tyUnsetUndefNull',..............
bc00 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6c 6f 61 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ............'float',............
bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..............'int',............
bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 62 6a 65 63 74 27 2c 0a 20 20 20 20 20 20 20 20 ..............'object',.........
bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 27 2c 0a 20 20 20 20 20 .................'string',......
bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 0a 20 20 0a 20 20 20 ....................);..........
bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 ...................../**....*.Re
bcc0 74 75 72 6e 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 63 6f 6e 74 61 69 6e 65 72 73 turn.an.instance.of.a.containers
bce0 20 66 6f 72 20 65 69 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 74 .for.either.function.or.method.t
bd00 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 ests....*....*.@param.string.$ty
bd20 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 20 63 pe....*.@return.variation.test.c
bd40 6f 6e 74 61 69 6e 65 72 0a 20 20 20 2a 2f 0a 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 ontainer....*/....public.static.
bd60 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 20 28 24 6f 70 74 69 6f 6e 61 6c 53 function.getInstance.($optionalS
bd80 65 63 74 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 ections,.$type.=.'function').{..
bda0 20 20 20 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 ........if($type.==.'function').
bdc0 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f {.......return.new.gtVariationCo
bde0 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e ntainerFunction($optionalSection
be00 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 s);.....}.....if($type.=='method
be20 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 6f ').{.......return.new.gtVariatio
be40 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f nContainerMethod($optionalSectio
be60 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 70 75 62 6c ns);.....}........}.........publ
be80 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c 28 29 20 7b 0a 20 20 7d ic.function.constructAll().{...}
bea0 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6c 6c 20 76 61 ........./**....*.Returns.all.va
bec0 72 61 69 74 69 6f 6e 20 74 65 73 74 73 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 61 72 72 raition.tests.as.an.array.of.arr
bee0 61 79 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 ays....*....*.@return.string....
bf00 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 61 72 69 61 74 69 6f */...public.function.getVariatio
bf20 6e 54 65 73 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 72 nTests().{.....return.$this->var
bf40 69 61 74 69 6f 6e 54 65 73 74 73 3b 0a 20 20 7d 0a 20 20 0a 7d 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a iationTests;...}....}.?>.<?php..
bf60 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 65 78 74 65 6e 64 65 64 20 76 61 72 69 61 74 /**..*.Class.for.extended.variat
bf80 69 6f 6e 73 2e 20 4e 65 65 64 73 20 27 64 61 74 61 20 74 79 70 65 27 20 61 6e 64 20 61 72 67 75 ions..Needs.'data.type'.and.argu
bfa0 6d 65 6e 74 20 74 6f 20 76 61 72 79 0a 20 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 ment.to.vary..*/..abstract.class
bfc0 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 .gtVariationTestCase.extends.gtT
bfe0 65 73 74 43 61 73 65 20 7b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 estCase.{...../**....*.Returns.a
c000 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 n.instance.of.a.test.case.for.a.
c020 6d 65 74 68 6f 64 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 method.or.a.function....*....*.@
c040 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 param.string.$type....*.@return.
c060 74 65 73 74 20 63 61 73 65 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 test.case.object....*/...public.
c080 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 static.function.getInstance($opt
c0a0 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e ionalSections,.$type.=.'function
c0c0 27 29 20 7b 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 ').{...........if($type.==.'func
c0e0 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 tion').{.......return.new.gtVari
c100 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 ationTestCaseFunction($optionalS
c120 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 ections);.....}.....if($type.=='
c140 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 method').{.......return.new.gtVa
c160 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 riationTestCaseMethod($optionalS
c180 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 ections);.....}....}....public.f
c1a0 75 6e 63 74 69 6f 6e 20 61 72 67 49 6e 69 74 56 61 72 69 61 74 69 6f 6e 28 29 20 7b 0a 20 20 20 unction.argInitVariation().{....
c1c0 20 24 73 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 .$statements.=.$this->subject->g
c1e0 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 etInitialisationStatements();...
c200 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 63 6f 75 6e 74 28 24 73 74 61 74 65 6d 65 6e 74 73 ..for($i=0;.$i<count($statements
c220 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 69 66 28 24 69 20 21 3d 20 28 20 24 74 68 69 );.$i++).{.......if($i.!=.(.$thi
c240 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 29 20 29 20 7b 0a 20 20 20 20 20 20 s->argumentNumber.-1).).{.......
c260 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 ..$this->testCase[].=.$statement
c280 73 5b 24 69 5d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e s[$i];.......}.....}.....$this->
c2a0 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 testCase.=.gtCodeSnippet::append
c2c0 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b BlankLines(2,.$this->testCase.);
c2e0 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 61 72 69 61 ...}....public.function.addVaria
c300 74 69 6f 6e 43 6f 64 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 tionCode().{.....$this->testCase
c320 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e .=.gtCodeSnippet::append($this->
c340 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b variationData,.$this->testCase);
c360 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 .....$this->testCase.=.gtCodeSni
c380 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d ppet::appendBlankLines(2,.$this-
c3a0 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 >testCase.);...}....public.funct
c3c0 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 ion.constructSubjectCalls().{...
c3e0 20 20 24 74 68 69 73 2d 3e 61 72 67 49 6e 69 74 56 61 72 69 61 74 69 6f 6e 28 29 3b 0a 20 20 20 ..$this->argInitVariation();....
c400 20 24 74 68 69 73 2d 3e 61 64 64 56 61 72 69 61 74 69 6f 6e 43 6f 64 65 28 29 3b 0a 20 20 20 20 .$this->addVariationCode();.....
c420 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 $this->subjectCalls();...}....pu
c440 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 blic.function.addVariationEcho()
c460 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f .{.....$this->testCase[].=."echo
c480 20 5c 22 2a 2a 2a 20 54 65 73 74 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 61 72 67 75 6d 65 6e .\"***.Test.substituting.argumen
c4a0 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 77 69 74 68 t.".$this->argumentNumber.".with
c4c0 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 6c 75 65 73 .".$this->variationData.".values
c4e0 20 2a 2a 2a 5c 5c 6e 5c 22 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 .***\\n\";";.....$this->testCase
c500 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e .=.gtCodeSnippet::appendBlankLin
c520 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a es(1,.$this->testCase.);...}..}.
c540 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 74 ?><?php../**..*.Class.for.variat
c560 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 61 20 50 48 50 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63 ion.tests.for.a.PHP.method..*/.c
c580 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 lass.gtVariationTestCaseMethod.e
c5a0 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 xtends.gtVariationTestCase.{....
c5c0 70 72 6f 74 65 63 74 65 64 20 24 73 75 62 6a 65 63 74 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 protected.$subject;...protected.
c5e0 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 76 61 $argumentNumber;...protected.$va
c600 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 74 65 73 74 43 61 riationData;...protected.$testCa
c620 73 65 3b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 se;....public.function.__constru
c640 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 ct($opt).{.....$this->optionalSe
c660 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 ctions.=.$opt;...}..../**....*.S
c680 65 74 20 64 61 74 61 20 6e 65 65 64 65 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 76 61 72 69 61 et.data.neede.to.construct.varia
c6a0 74 69 6f 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 tion.tests....*....*.@param.gtMe
c6c0 74 68 6f 64 20 24 6d 65 74 68 6f 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 thod.$method....*.@param.string.
c6e0 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 $argumentNumber....*.@param.stri
c700 6e 67 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 ng.$variationData....*/...public
c720 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 28 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 .function.setUp(gtMethod.$method
c740 2c 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2c 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 ,.$argumentNumber,.$variationDat
c760 61 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 6d 65 74 68 6f a).{.....$this->subject.=.$metho
c780 64 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 3d 20 24 d;.....$this->argumentNumber.=.$
c7a0 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 argumentNumber;.....$this->varia
c7c0 74 69 6f 6e 44 61 74 61 20 3d 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 7d 0a 0a tionData.=.$variationData;...}..
c7e0 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 74 68 65 20 74 65 73 74 20 .../**....*.Constructs.the.test.
c800 63 61 73 65 20 61 73 20 61 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a case.as.a.array.of.strings....*.
c820 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 ...*/...public.function.construc
c840 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 tTestCase().{.....$this->constru
c860 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 ctCommonHeaders();..........$thi
c880 73 2d 3e 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 s->addVariationEcho();..........
c8a0 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 3b 0a 20 20 20 $this->constructorArgInit();....
c8c0 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e 63 .$this->constructorCreateInstanc
c8e0 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 e();..........$this->constructSu
c900 62 6a 65 63 74 63 61 6c 6c 73 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 bjectcalls();.....$this->constru
c920 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 0a 20 20 70 ctCommonClosing();........}....p
c940 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 ublic.function.testHeader().{...
c960 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 ..$this->testCase[].=."--TEST--"
c980 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 ;.....$this->testCase[].=."Test.
c9a0 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6c 61 73 73 class.".$this->subject->getClass
c9c0 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 Name().".method.".$this->subject
c9e0 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 ->getName()."().by.substituting.
ca00 61 72 67 75 6d 65 6e 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 argument.".$this->argumentNumber
ca20 2e 22 20 77 69 74 68 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2e 22 .".with.".$this->variationData."
ca40 20 76 61 6c 75 65 73 2e 22 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .values.";...}....public.functio
ca60 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 n.subjectCalls().{.....$this->te
ca80 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 stCase.=.gtCodeSnippet::append('
caa0 6c 6f 6f 70 53 74 61 72 74 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 loopStart',.$this->testCase);...
cac0 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 ..//.Construct.the.argument.list
cae0 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 6d 65 74 68 6f 64 20 62 65 69 6e 67 20 74 65 73 .to.pass.to.the.method.being.tes
cb00 74 65 64 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 65 78 70 6c 6f 64 65 28 ted.....$argumentList.=.explode(
cb20 22 2c 22 2c 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4d 61 78 69 6d 75 6d 41 ",",.$this->subject->getMaximumA
cb40 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 29 3b 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 rgumentList());.....$argumentLis
cb60 74 5b 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 20 5d 20 3d 20 22 t[$this->argumentNumber.-1.].=."
cb80 5c 24 76 61 72 20 22 3b 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 2c 20 \$var.";.....$list.=.implode(",.
cba0 22 2c 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 29 3b 0a 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e ",.$argumentList);.......$this->
cbc0 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 20 20 76 61 72 5f 64 75 6d 70 28 5c 24 63 6c 61 73 73 testCase[].=."..var_dump(\$class
cbe0 2d 3e 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 ->".$this->subject->getName()."(
cc00 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 .".$list.".).);";.....$this->tes
cc20 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c tCase.=.gtCodeSnippet::append('l
cc40 6f 6f 70 43 6c 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20 20 oopClose',.$this->testCase);....
cc60 7d 0a 0a 7d 0a 0a 3f 3e cf db 3a 79 f3 f5 44 85 37 b8 ef a6 60 5f 67 aa 44 bb 80 55 02 00 00 00 }..}..?>..:y..D.7...`_g.D..U....
cc80 47 42 4d 42 GBMB