class Prophet in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpspec/prophecy/src/Prophecy/Prophet.php \Prophecy\Prophet
Prophet creates prophecies.
@author Konstantin Kudryashov <ever.zet@gmail.com>
Hierarchy
- class \Prophecy\Prophet
Expanded class hierarchy of Prophet
2 files declare their use of Prophet
- MethodProphecy.php in vendor/
phpspec/ prophecy/ src/ Prophecy/ Prophecy/ MethodProphecy.php - TestCase.php in vendor/
phpunit/ phpunit/ src/ Framework/ TestCase.php
File
- vendor/
phpspec/ prophecy/ src/ Prophecy/ Prophet.php, line 30
Namespace
ProphecyView source
class Prophet {
private $doubler;
private $revealer;
private $util;
/**
* @var ObjectProphecy[]
*/
private $prophecies = array();
/**
* Initializes Prophet.
*
* @param null|Doubler $doubler
* @param null|RevealerInterface $revealer
* @param null|StringUtil $util
*/
public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null, StringUtil $util = null) {
if (null === $doubler) {
$doubler = new Doubler();
$doubler
->registerClassPatch(new ClassPatch\SplFileInfoPatch());
$doubler
->registerClassPatch(new ClassPatch\TraversablePatch());
$doubler
->registerClassPatch(new ClassPatch\DisableConstructorPatch());
$doubler
->registerClassPatch(new ClassPatch\ProphecySubjectPatch());
$doubler
->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch());
$doubler
->registerClassPatch(new ClassPatch\HhvmExceptionPatch());
$doubler
->registerClassPatch(new ClassPatch\MagicCallPatch());
$doubler
->registerClassPatch(new ClassPatch\KeywordPatch());
}
$this->doubler = $doubler;
$this->revealer = $revealer ?: new Revealer();
$this->util = $util ?: new StringUtil();
}
/**
* Creates new object prophecy.
*
* @param null|string $classOrInterface Class or interface name
*
* @return ObjectProphecy
*/
public function prophesize($classOrInterface = null) {
$this->prophecies[] = $prophecy = new ObjectProphecy(new LazyDouble($this->doubler), new CallCenter($this->util), $this->revealer);
if ($classOrInterface && class_exists($classOrInterface)) {
return $prophecy
->willExtend($classOrInterface);
}
if ($classOrInterface && interface_exists($classOrInterface)) {
return $prophecy
->willImplement($classOrInterface);
}
return $prophecy;
}
/**
* Returns all created object prophecies.
*
* @return ObjectProphecy[]
*/
public function getProphecies() {
return $this->prophecies;
}
/**
* Returns Doubler instance assigned to this Prophet.
*
* @return Doubler
*/
public function getDoubler() {
return $this->doubler;
}
/**
* Checks all predictions defined by prophecies of this Prophet.
*
* @throws Exception\Prediction\AggregateException If any prediction fails
*/
public function checkPredictions() {
$exception = new AggregateException("Some predictions failed:\n");
foreach ($this->prophecies as $prophecy) {
try {
$prophecy
->checkProphecyMethodsPredictions();
} catch (PredictionException $e) {
$exception
->append($e);
}
}
if (count($exception
->getExceptions())) {
throw $exception;
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Prophet:: |
private | property | ||
Prophet:: |
private | property | ||
Prophet:: |
private | property | ||
Prophet:: |
private | property | ||
Prophet:: |
public | function | Checks all predictions defined by prophecies of this Prophet. | |
Prophet:: |
public | function | Returns Doubler instance assigned to this Prophet. | |
Prophet:: |
public | function | Returns all created object prophecies. | |
Prophet:: |
public | function | Creates new object prophecy. | |
Prophet:: |
public | function | Initializes Prophet. |