public function setUp() { $this->suggestedDependencyFinder = $this->prophesize(Finder::class); $foo = $this->prophesize(DependencyFoo::class); $bar = $this->prophesize(DependencyBar::class); $this->goldenDependencyRetriever = $this->prophesize(Retriever::class); $this->goldenDependencyRetriever->getName()->willReturn('golden'); $this->goldenDependencyRetriever->knowsDependency('foo')->willReturn(true); $this->goldenDependencyRetriever->knowsDependency('non_existent')->willReturn(false); $this->goldenDependencyRetriever->retrieveDependency('foo')->willReturn($foo->reveal()); $this->labradorDependencyRetriever = $this->prophesize(Retriever::class); $this->labradorDependencyRetriever->getName()->willReturn('labrador'); $this->labradorDependencyRetriever->knowsDependency('bar')->willReturn(true); $this->labradorDependencyRetriever->knowsDependency('non_existent')->willReturn(false); $this->labradorDependencyRetriever->retrieveDependency('bar')->willReturn($bar->reveal()); $this->sut = new SimpleFactory($this->suggestedDependencyFinder->reveal(), [$this->goldenDependencyRetriever->reveal(), $this->labradorDependencyRetriever->reveal()]); }
/** * Adds another dependency retriever. * * The newly added retriever will receive a lower priority than any * existing retrievers. If a retriever with the same name already exists, * it is kept. * * @param \BartFeenstra\DependencyRetriever\Retriever\Retriever $dependencyRetriever */ public function addDependencyRetriever(Retriever $dependencyRetriever) { if (!array_key_exists($dependencyRetriever->getName(), $this->dependencyRetrievers)) { $this->dependencyRetrievers[$dependencyRetriever->getName()] = $dependencyRetriever; } }