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;
     }
 }