/**
  * Tests whether the declaration of dependencies directly on the nodes works correctly
  * and the dependencies are detected by the graph.
  *
  * @test
  */
 public function testDeclarationOnNodes()
 {
     $graph = new DependencyGraph();
     $nodeA = new DependencyNode('A');
     $nodeB = new DependencyNode('B');
     $nodeC = new DependencyNode('C');
     $nodeD = new DependencyNode('D');
     $nodeE = new DependencyNode('E');
     $nodeA->dependsOn($nodeB);
     $nodeA->dependsOn($nodeD);
     $nodeB->dependsOn($nodeC);
     $nodeB->dependsOn($nodeE);
     $nodeC->dependsOn($nodeD);
     $nodeC->dependsOn($nodeE);
     $graph->addNode($nodeA);
     $dependencies = $graph->getDependencies();
     $this->assertEquals(array($nodeB, $nodeD), $dependencies[$nodeA]->getArrayCopy());
     $this->assertEquals(array($nodeC, $nodeE), $dependencies[$nodeB]->getArrayCopy());
     $this->assertEquals(array($nodeD, $nodeE), $dependencies[$nodeC]->getArrayCopy());
     $this->assertEquals(array(), $dependencies[$nodeD]->getArrayCopy());
     $this->assertEquals(array(), $dependencies[$nodeE]->getArrayCopy());
 }