Eloquent\Phony\Facade\FacadeDriver::__construct PHP Method

__construct() protected method

Construct a new facade driver.
protected __construct ( Eloquent\Phony\Assertion\AssertionRecorder $assertionRecorder )
$assertionRecorder Eloquent\Phony\Assertion\AssertionRecorder The assertion recorder to use.
    protected function __construct(AssertionRecorder $assertionRecorder)
    {
        $this->sequences = array();
        $anyMatcher = new AnyMatcher();
        $objectIdSequence = Sequencer::sequence('exporter-object-id');
        $invocableInspector = new InvocableInspector();
        $exporter = new InlineExporter(1, $objectIdSequence, $invocableInspector);
        $featureDetector = new FeatureDetector();
        $invoker = new Invoker();
        $matcherVerifier = new MatcherVerifier();
        if ($featureDetector->isSupported('runtime.hhvm')) {
            // @codeCoverageIgnoreStart
            $functionSignatureInspector = new HhvmFunctionSignatureInspector($invocableInspector, $featureDetector);
            // @codeCoverageIgnoreEnd
        } else {
            $functionSignatureInspector = new PhpFunctionSignatureInspector($invocableInspector, $featureDetector);
        }
        $mockClassLabelSequence = Sequencer::sequence('mock-class-label');
        $this->sequences[] = $mockClassLabelSequence;
        $mockGenerator = new MockGenerator($mockClassLabelSequence, $functionSignatureInspector, $featureDetector);
        $wildcardMatcher = new WildcardMatcher($anyMatcher, 0, null);
        $matcherFactory = new MatcherFactory($anyMatcher, $wildcardMatcher, $exporter);
        $matcherFactory->addMatcherDriver(new HamcrestMatcherDriver());
        $matcherFactory->addMatcherDriver(new CounterpartMatcherDriver());
        $matcherFactory->addMatcherDriver(new PhpunitMatcherDriver());
        $matcherFactory->addMatcherDriver(new SimpletestMatcherDriver());
        $matcherFactory->addMatcherDriver(new PhakeMatcherDriver($wildcardMatcher));
        $matcherFactory->addMatcherDriver(new ProphecyMatcherDriver($wildcardMatcher));
        $matcherFactory->addMatcherDriver(new MockeryMatcherDriver());
        $emptyValueFactory = new EmptyValueFactory();
        $generatorAnswerBuilderFactory = new GeneratorAnswerBuilderFactory($invocableInspector, $invoker, $featureDetector);
        $stubLabelSequence = Sequencer::sequence('stub-label');
        $this->sequences[] = $stubLabelSequence;
        $stubFactory = new StubFactory($stubLabelSequence, $matcherFactory, $matcherVerifier, $invoker, $invocableInspector, $emptyValueFactory, $generatorAnswerBuilderFactory);
        $clock = new SystemClock('microtime');
        $eventSequence = Sequencer::sequence('event-sequence-number');
        $this->sequences[] = $eventSequence;
        $eventFactory = new CallEventFactory($eventSequence, $clock);
        $callFactory = new CallFactory($eventFactory, $invoker);
        $generatorSpyFactory = new GeneratorSpyFactory($eventFactory, $featureDetector);
        $iterableSpyFactory = new IterableSpyFactory($eventFactory);
        $spyLabelSequence = Sequencer::sequence('spy-label');
        $this->sequences[] = $spyLabelSequence;
        $spyFactory = new SpyFactory($spyLabelSequence, $callFactory, $invoker, $generatorSpyFactory, $iterableSpyFactory);
        $differenceEngine = new DifferenceEngine($featureDetector);
        $assertionRenderer = new AssertionRenderer($matcherVerifier, $exporter, $differenceEngine, $featureDetector);
        $generatorVerifierFactory = new GeneratorVerifierFactory($matcherFactory, $assertionRecorder, $assertionRenderer);
        $iterableVerifierFactory = new IterableVerifierFactory($matcherFactory, $assertionRecorder, $assertionRenderer);
        $callVerifierFactory = new CallVerifierFactory($matcherFactory, $matcherVerifier, $generatorVerifierFactory, $iterableVerifierFactory, $assertionRecorder, $assertionRenderer);
        $assertionRecorder->setCallVerifierFactory($callVerifierFactory);
        $functionHookGenerator = new FunctionHookGenerator();
        $functionHookManager = new FunctionHookManager($functionSignatureInspector, $functionHookGenerator);
        $stubVerifierFactory = new StubVerifierFactory($stubFactory, $spyFactory, $matcherFactory, $matcherVerifier, $generatorVerifierFactory, $iterableVerifierFactory, $callVerifierFactory, $assertionRecorder, $assertionRenderer, $generatorAnswerBuilderFactory, $functionHookManager);
        $handleFactory = new HandleFactory($stubFactory, $stubVerifierFactory, $assertionRenderer, $assertionRecorder, $invoker);
        $mockLabelSequence = Sequencer::sequence('mock-label');
        $this->sequences[] = $mockLabelSequence;
        $mockFactory = new MockFactory($mockLabelSequence, $mockGenerator, $handleFactory, $featureDetector);
        $mockBuilderFactory = new MockBuilderFactory($mockFactory, $handleFactory, $invocableInspector, $featureDetector);
        $spyVerifierFactory = new SpyVerifierFactory($spyFactory, $matcherFactory, $matcherVerifier, $generatorVerifierFactory, $iterableVerifierFactory, $callVerifierFactory, $assertionRecorder, $assertionRenderer, $functionHookManager);
        $eventOrderVerifier = new EventOrderVerifier($assertionRecorder, $assertionRenderer);
        $emptyValueFactory->setStubVerifierFactory($stubVerifierFactory);
        $emptyValueFactory->setMockBuilderFactory($mockBuilderFactory);
        $generatorVerifierFactory->setCallVerifierFactory($callVerifierFactory);
        $iterableVerifierFactory->setCallVerifierFactory($callVerifierFactory);
        $this->mockBuilderFactory = $mockBuilderFactory;
        $this->handleFactory = $handleFactory;
        $this->spyVerifierFactory = $spyVerifierFactory;
        $this->stubVerifierFactory = $stubVerifierFactory;
        $this->functionHookManager = $functionHookManager;
        $this->eventOrderVerifier = $eventOrderVerifier;
        $this->matcherFactory = $matcherFactory;
        $this->exporter = $exporter;
        $this->assertionRenderer = $assertionRenderer;
        $this->differenceEngine = $differenceEngine;
    }

Usage Example

Beispiel #1
0
 /**
  * Construct a new Pho facade driver.
  */
 public function __construct()
 {
     parent::__construct(new PhoAssertionRecorder());
 }
All Usage Examples Of Eloquent\Phony\Facade\FacadeDriver::__construct