Show Source00001 <?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 ?>