<?php /** * Class for extended variations. Needs 'data type' and argument to vary */ abstract class gtVariationTestCase extends gtTestCase { /** * Returns an instance of a test case for a method or a function * * @param string $type * @return test case object */ public static function getInstance($optionalSections, $type = 'function') { if($type == 'function') { return new gtVariationTestCaseFunction($optionalSections); } if($type =='method') { return new gtVariationTestCaseMethod($optionalSections); } } public function argInitVariation() { $statements = $this->subject->getInitialisationStatements(); for($i=0; $i<count($statements); $i++) { if($i != ( $this->argumentNumber -1) ) { $this->testCase[] = $statements[$i]; } } $this->testCase = gtCodeSnippet::appendBlankLines(2, $this->testCase ); } public function addVariationCode() { $this->testCase = gtCodeSnippet::append($this->variationData, $this->testCase); $this->testCase = gtCodeSnippet::appendBlankLines(2, $this->testCase ); } public function constructSubjectCalls() { $this->argInitVariation(); $this->addVariationCode(); $this->subjectCalls(); } public function addVariationEcho() { $this->testCase[] = "echo \"*** Test substituting argument ".$this->argumentNumber." with ".$this->variationData." values ***\\n\";"; $this->testCase = gtCodeSnippet::appendBlankLines(1, $this->testCase ); } } ?>