class SplFileInfoPatchSpec in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php \spec\Prophecy\Doubler\ClassPatch\SplFileInfoPatchSpec
Hierarchy
- class \spec\Prophecy\Doubler\ClassPatch\SplFileInfoPatchSpec extends \PhpSpec\ObjectBehavior
Expanded class hierarchy of SplFileInfoPatchSpec
File
- vendor/
phpspec/ prophecy/ spec/ Prophecy/ Doubler/ ClassPatch/ SplFileInfoPatchSpec.php, line 8
Namespace
spec\Prophecy\Doubler\ClassPatchView source
class SplFileInfoPatchSpec extends ObjectBehavior {
function it_is_a_patch() {
$this
->shouldBeAnInstanceOf('Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface');
}
function its_priority_is_50() {
$this
->getPriority()
->shouldReturn(50);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
*/
function it_does_not_support_nodes_without_parent_class($node) {
$node
->getParentClass()
->willReturn('stdClass');
$this
->supports($node)
->shouldReturn(false);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
*/
function it_supports_nodes_with_SplFileInfo_as_parent_class($node) {
$node
->getParentClass()
->willReturn('SplFileInfo');
$this
->supports($node)
->shouldReturn(true);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
*/
function it_supports_nodes_with_derivative_of_SplFileInfo_as_parent_class($node) {
$node
->getParentClass()
->willReturn('SplFileInfo');
$this
->supports($node)
->shouldReturn(true);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
*/
function it_adds_a_method_to_node_if_not_exists($node) {
$node
->hasMethod('__construct')
->willReturn(false);
$node
->addMethod(Argument::any())
->shouldBeCalled();
$node
->getParentClass()
->shouldBeCalled();
$this
->apply($node);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
* @param \Prophecy\Doubler\Generator\Node\MethodNode $method
*/
function it_updates_existing_method_if_found($node, $method) {
$node
->hasMethod('__construct')
->willReturn(true);
$node
->getMethod('__construct')
->willReturn($method);
$node
->getParentClass()
->shouldBeCalled();
$method
->useParentCode()
->shouldBeCalled();
$this
->apply($node);
}
/**
* @param \Prophecy\Doubler\Generator\Node\ClassNode $node
* @param \Prophecy\Doubler\Generator\Node\MethodNode $method
*/
function it_should_not_supply_a_file_for_a_directory_iterator($node, $method) {
$node
->hasMethod('__construct')
->willReturn(true);
$node
->getMethod('__construct')
->willReturn($method);
$node
->getParentClass()
->willReturn('DirectoryIterator');
$method
->setCode(Argument::that(function ($value) {
return strpos($value, '.php') === false;
}))
->shouldBeCalled();
$this
->apply($node);
}
}