00001 <?php 00010 class assertItem extends zCore{ 00011 var $expFlag; 00012 var $errMsg; 00013 var $fileName; 00014 var $lineNum; 00015 var $timeStamp; 00016 var $dateTime; 00017 00026 function assertItem($exp, $errMsg=null, $file=null, $line=null){ 00027 $this->expFlag = $exp; 00028 $this->errMsg = is_null($errMsg) ? "No Error Message Provided" : $errMsg; 00029 $this->fileName = $file; 00030 $this->lineNum = $line; 00031 $this->timeStamp = time(); 00032 $this->dateTime = date("F j, Y, g:i a"); 00033 } 00034 } 00035 00048 function assertItem($exp, $errMsg=null, $file=null, $line=null){ 00049 return (new assertItem($exp, $errMsg, $file, $line)); 00050 } 00051 00059 class unitList extends zCore{ 00060 var $uniResList = array(); 00061 00067 function append($uniItem){ 00068 $this->uniResList[] = $uniItem; 00069 } 00076 function at($i){ 00077 return $this->uniResList[$i]; 00078 } 00084 function length(){ 00085 return count($this->uniResList); 00086 } 00092 function removeNode($i){ 00093 if(isset($this->uniResList[$i]))unset($this->uniResList[$i]); 00094 } 00095 } 00096 $GLOBALS['__uTList'] = new unitList(); 00097 00108 class assert extends zCore{ 00117 function valid($expVal, $errMsg=null, $file=null, $line=null){ 00118 return assert::processTest(assertItem($expVal, $errMsg, $file, $line), false); 00119 } 00128 function strict($expVal, $errMsg=null, $file=null, $line=null){ 00129 return assert::processTest(assertItem($expVal, $errMsg, $file, $line), true); 00130 } 00139 function processTest($assertItem, $isStrict){ 00140 if($isStrict){ 00141 if($assertItem->expFlag == 0){ 00142 perror("<code>zigmoyd.unitTest.strict</code><br />Strict Unit Testing Failed.Further Processing Terminated.Check Unit Test Result for more details"); 00143 $GLOBALS['__uTList']->append($assertItem); 00144 exit; 00145 } 00146 } 00147 $GLOBALS['__uTList']->append($assertItem); 00148 } 00149 } 00150 00160 function u($expVal, $errMsg=null, $file=null, $line=null){ 00161 return assert::valid($expVal, $errMsg, $file, $line); 00162 } 00163 00172 function dumpTest(){ 00173 $filePath = zDef::get('UNIT_TEST_FILE'); 00174 if(!$utfp = fopen($filePath, 'w')){ 00175 perror("<pre>unit.dump</pre>Failed to open $filePath to write to dump Unit Testing Result(s)"); 00176 return false; 00177 } 00178 $len = $GLOBALS['__uTList']->length(); 00179 for($i=0;$i<$len;$i++){ 00180 fwrite($utfp, "[$i]\n"); 00181 $test = $GLOBALS['__uTList']->at($i); 00182 fwrite($utfp, "\tExpFlag=".(int)$test->expFlag.endl); 00183 fwrite($utfp, "\tErrMsg=\"".$test->errMsg."\"".endl); 00184 fwrite($utfp, "\tFileName=\"".$test->fileName."\"".endl); 00185 fwrite($utfp, "\tLineNum=".$test->lineNum.endl); 00186 fwrite($utfp, "\tTimeStamp=".$test->timeStamp.endl); 00187 fwrite($utfp, "\tDateTime=\"".$test->dateTime."\""); 00188 fwrite($utfp, "\n"); 00189 $GLOBALS['__uTList']->removeNode($i); 00190 } 00191 fclose($utfp); 00192 return true; 00193 } 00194 register_shutdown_function('dumpTest'); 00195 ?>