164 lines
3.2 KiB
PHP
164 lines
3.2 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* This file is part of phpFastCache.
|
|
*
|
|
* @license MIT License (MIT)
|
|
*
|
|
* For full copyright and license information, please see the docs/CREDITS.txt file.
|
|
*
|
|
* @author Khoa Bui (khoaofgod) <khoaofgod@gmail.com> http://www.phpfastcache.com
|
|
* @author Georges.L (Geolim4) <contact@geolim4.com>
|
|
*
|
|
*/
|
|
|
|
namespace phpFastCache\Helper;
|
|
|
|
use phpFastCache\Api;
|
|
|
|
/**
|
|
* Class TestHelper
|
|
* @package phpFastCache\Helper
|
|
*/
|
|
class TestHelper
|
|
{
|
|
/**
|
|
* @var int
|
|
*/
|
|
protected $exitCode = 0;
|
|
|
|
/**
|
|
* TestHelper constructor.
|
|
* @param $testName
|
|
*/
|
|
public function __construct($testName)
|
|
{
|
|
$this->printText('[PhpFastCache API v' . Api::getVersion() . ']', true);
|
|
$this->printText("[Begin Test: '{$testName}']");
|
|
$this->printText('---');
|
|
}
|
|
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getExitCode()
|
|
{
|
|
return $this->exitCode;
|
|
}
|
|
|
|
/**
|
|
* @return $this
|
|
*/
|
|
public function resetExitCode()
|
|
{
|
|
$this->exitCode = 0;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param string $string
|
|
* @return $this
|
|
*/
|
|
public function printSkipText($string)
|
|
{
|
|
$this->printText("[SKIP] {$string}");
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param string $string
|
|
* @return $this
|
|
*/
|
|
public function printPassText($string)
|
|
{
|
|
$this->printText("[PASS] {$string}");
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param string $string
|
|
* @return $this
|
|
*/
|
|
public function printFailText($string)
|
|
{
|
|
$this->printText("[FAIL] {$string}");
|
|
$this->exitCode = 1;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param int $count
|
|
* @return $this
|
|
*/
|
|
public function printNewLine($count = 1)
|
|
{
|
|
for ($i = 0; $i < $count; $i++) {
|
|
print PHP_EOL;
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param $string
|
|
* @param bool $strtoupper
|
|
* @return $this
|
|
*/
|
|
public function printText($string, $strtoupper = false)
|
|
{
|
|
if (!$strtoupper) {
|
|
print trim($string) . PHP_EOL;
|
|
} else {
|
|
print strtoupper(trim($string) . PHP_EOL);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param string $cmd
|
|
*/
|
|
public function runAsyncProcess($cmd)
|
|
{
|
|
if (substr(php_uname(), 0, 7) === 'Windows') {
|
|
pclose(popen('start /B ' . $cmd, 'r'));
|
|
} else {
|
|
exec($cmd . ' > /dev/null &');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param string $file
|
|
* @param string $ext
|
|
*/
|
|
public function runSubProcess($file, $ext = '.php')
|
|
{
|
|
$this->runAsyncProcess('php ' . getcwd() . DIRECTORY_SEPARATOR . 'subprocess' . DIRECTORY_SEPARATOR . $file . '.subprocess' . $ext);
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function terminateTest()
|
|
{
|
|
exit($this->exitCode);
|
|
}
|
|
|
|
/**
|
|
* @param $obj
|
|
* @param $prop
|
|
* @return mixed
|
|
* @throws \ReflectionException
|
|
*/
|
|
public function accessInaccessibleMember($obj, $prop) {
|
|
$reflection = new \ReflectionClass($obj);
|
|
$property = $reflection->getProperty($prop);
|
|
$property->setAccessible(true);
|
|
return $property->getValue($obj);
|
|
}
|
|
|
|
} |