Вход Регистрация
Файл: gapps/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php
Строк: 62
<?php

namespace MockeryGeneratorStringManipulationPass;

use 
MockeryGeneratorMockConfiguration;

class 
InstanceMockPass
{
    const 
INSTANCE_MOCK_CODE = <<<MOCK

    protected 
$_mockery_ignoreVerification = true;

    public function __construct()
    {
        
$this->_mockery_ignoreVerification = false;
        
$associatedRealObject = Mockery::fetchMock(__CLASS__);

        foreach (get_object_vars(
$this) as $attr => $val) {
            if (
$attr !== "_mockery_ignoreVerification" && $attr !== "_mockery_expectations") {
                
$this->$attr = $associatedRealObject->$attr;
            }
        }

        
$directors = $associatedRealObject->mockery_getExpectations();
        foreach (
$directors as $method=>$director) {
            
$expectations = $director->getExpectations();
            // get the director method needed
            
$existingDirector = $this->mockery_getExpectationsFor($method);
            if (!
$existingDirector) {
                
$existingDirector = new MockeryExpectationDirector($method$this);
                
$this->mockery_setExpectationsFor($method$existingDirector);
            }
            foreach (
$expectations as $expectation) {
                
$clonedExpectation = clone $expectation;
                
$existingDirector->addExpectation($clonedExpectation);
            }
        }
        Mockery::getContainer()->rememberMock(
$this);
    }
MOCK;

    public function 
apply($codeMockConfiguration $config)
    {
        if (
$config->isInstanceMock()) {
            
$code $this->appendToClass($code, static::INSTANCE_MOCK_CODE);
        }

        return 
$code;
    }

    protected function 
appendToClass($class$code)
    {
        
$lastBrace strrpos($class"}");
        
$class substr($class0$lastBrace) . $code "n    }n";
        return 
$class;
    }
}
Онлайн: 0
Реклама