public function testBelowPlacement()
 {
     $stack = new ProtocolLayerStack();
     $layerA = new \ClientProtocolLayer();
     $layerB = new \ClientProtocolLayer();
     $layerC = new \ClientProtocolLayer();
     $stack->addLayer($layerA, ProtocolLayerStack::PLACEMENT_BELOW);
     $stack->addLayer($layerB, ProtocolLayerStack::PLACEMENT_BELOW, $layerA);
     $stack->addLayer($layerC, ProtocolLayerStack::PLACEMENT_BELOW, $layerA);
     $this->assertEquals(true, $layerB === $stack->getBottomLayer());
     $this->assertEquals(true, $layerA === $stack->getTopLayer());
     $this->assertEquals(true, $layerC === $layerA->getLowerLayer());
     $this->assertEquals(null, $layerA->getUpperLayer());
     $this->assertEquals(true, $layerB === $layerC->getLowerLayer());
     $this->assertEquals(true, $layerA === $layerC->getUpperLayer());
     $this->assertEquals(true, $layerC === $layerB->getUpperLayer());
     $this->assertEquals(null, $layerB->getLowerLayer());
 }