public function itCreatesAnArtifactNodeForEveryArtifactId()
 {
     $provider = new Cardwall_ArtifactNodeTreeProvider();
     $artifact_factory = mock('Tracker_ArtifactFactory');
     $artifact4 = aMockArtifact()->withId(4)->build();
     $artifact5 = aMockArtifact()->withId(5)->build();
     $artifact6 = aMockArtifact()->withId(6)->build();
     stub($artifact_factory)->getArtifactById(4)->returns($artifact4);
     stub($artifact_factory)->getArtifactById(5)->returns($artifact5);
     stub($artifact_factory)->getArtifactById(6)->returns($artifact6);
     $cards = $provider->getCards(array(4, 5, 6), $artifact_factory);
     $this->assertEqual(3, count($cards));
     foreach ($cards as $card) {
         $id = $card->getId();
         $this->assertBetweenClosedInterval($id, 4, 6);
         $artifact = $card->getArtifact();
         $this->assertBetweenClosedInterval($artifact->getId(), 4, 6);
         $this->assertIsA($artifact, 'Tracker_Artifact');
     }
 }
 /**
  * @return TreeNode
  */
 public function getForestsOfArtifacts(array $artifact_ids, Tracker_ArtifactFactory $artifact_factory)
 {
     $provider = new Cardwall_ArtifactNodeTreeProvider();
     return $provider->flatForestOfArtifacts($artifact_ids, $artifact_factory);
 }