diff options
Diffstat (limited to 'scripts/dev/generate-phpt/src/testcase/gtVariationTestCaseMethod.php')
-rw-r--r-- | scripts/dev/generate-phpt/src/testcase/gtVariationTestCaseMethod.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/scripts/dev/generate-phpt/src/testcase/gtVariationTestCaseMethod.php b/scripts/dev/generate-phpt/src/testcase/gtVariationTestCaseMethod.php new file mode 100644 index 0000000..a9c921f --- /dev/null +++ b/scripts/dev/generate-phpt/src/testcase/gtVariationTestCaseMethod.php @@ -0,0 +1,68 @@ +<?php + +/** + * Class for variation tests for a PHP method + */ +class gtVariationTestCaseMethod extends gtVariationTestCase { + + protected $subject; + protected $argumentNumber; + protected $variationData; + protected $testCase; + + public function __construct($opt) { + $this->optionalSections = $opt; + } + + /** + * Set data neede to construct variation tests + * + * @param gtMethod $method + * @param string $argumentNumber + * @param string $variationData + */ + public function setUp(gtMethod $method, $argumentNumber, $variationData) { + $this->subject = $method; + $this->argumentNumber = $argumentNumber; + $this->variationData = $variationData; + } + + + /** + * Constructs the test case as a array of strings + * + */ + public function constructTestCase() { + $this->constructCommonHeaders(); + + $this->addVariationEcho(); + + $this->constructorArgInit(); + $this->constructorCreateInstance(); + + $this->constructSubjectcalls(); + $this->constructCommonClosing(); + + } + + public function testHeader() { + $this->testCase[] = "--TEST--"; + $this->testCase[] = "Test class ".$this->subject->getClassName()." method ".$this->subject->getName()."() by substituting argument ".$this->argumentNumber." with ".$this->variationData." values."; + } + + public function subjectCalls() { + $this->testCase = gtCodeSnippet::append('loopStart', $this->testCase); + // Construct the argument list to pass to the method being tested + $argumentList = explode(",", $this->subject->getMaximumArgumentList()); + $argumentList[$this->argumentNumber -1 ] = "\$var "; + $list = implode(", ", $argumentList); + + + $this->testCase[] = " var_dump(\$class->".$this->subject->getName()."( ".$list." ) );"; + $this->testCase = gtCodeSnippet::append('loopClose', $this->testCase); + + } + +} + +?>
\ No newline at end of file |