return new Phiremock($di->get('router'), $di->get('logger')); }); $di->register('expectationStorage', function () { return new ExpectationAutoStorage(); }); $di->register('requestStorage', function () { return new RequestAutoStorage(); }); $di->register('scenarioStorage', function () { return new ScenarioAutoStorage(); }); $di->register('requestExpectationComparator', function () use($di) { return new RequestExpectationComparator($di->get('matcherFactory'), $di->get('inputSourceFactory'), $di->get('scenarioStorage'), $di->get('logger')); }); $di->register('requestBuilder', function () { return RequestBuilderFactory::createRequestBuilder(); }); $di->register('fileExpectationsLoader', function () use($di) { return new FileExpectationsLoader($di->get('requestBuilder'), $di->get('expectationStorage'), $di->get('logger')); }); $di->register('conditionsMatcherFactory', function () use($di) { return new ConditionsMatcherFactory($di->get('inputSourceFactory'), $di->get('matcherFactory')); }); $di->register('inputSourceFactory', function () { return new InputSourceFactory(['method' => new SingletonLazyCreator(Method::class), 'url' => new SingletonLazyCreator(UrlFromPath::class), 'header' => new SingletonLazyCreator(Header::class), 'body' => new SingletonLazyCreator(Body::class)]); }); $di->register('router', function () use($di) { return new PowerRoute($di->get('config'), $di->get('actionFactory'), $di->get('conditionsMatcherFactory')); }); $di->register('matcherFactory', function () { return new MatcherFactory([Matchers::EQUAL_TO => new SingletonLazyCreator(Equals::class), Matchers::MATCHES => new SingletonLazyCreator(RegExpMatcher::class), Matchers::SAME_STRING => new SingletonLazyCreator(CaseInsensitiveEquals::class), Matchers::CONTAINS => new SingletonLazyCreator(ContainsMatcher::class)]);
private function getRequestBuilder() { if ($this->simpleRequestBuilder === null) { $this->simpleRequestBuilder = RequestBuilderFactory::createRequestBuilder(); } return $this->simpleRequestBuilder; }