/**
  */
 public function testUpdate()
 {
     $style1 = new StrokeStyle();
     $style2 = new StrokeStyle(2.5, 'green', 0.6);
     $style1->update($style2);
     $this->assertSame(2.5, $style1->getWidth());
     $this->assertSame(0.6, $style1->getOpacity());
     $this->assertNotNull($style1->getColor());
     $this->assertSame('green', $style1->getColor()->__toString());
     // test independence of style1 and style2
     $style1->setOpacity(0.3);
     $this->assertSame(0.3, $style1->getOpacity());
     $this->assertSame(0.6, $style2->getOpacity());
 }
 /**
  * @param ZendPage $page
  * @param StrokeStyle $strokeStyle
  * @param float|null $opacity
  */
 private function setLineStyle(ZendPage $page, StrokeStyle $strokeStyle, $opacity = null)
 {
     $page->setLineWidth($strokeStyle->getWidth());
     $page->setLineColor($this->getZendColor($strokeStyle->getColor()));
     if ($opacity !== null) {
         $page->setAlpha($opacity * $strokeStyle->getOpacity());
     }
 }
 /**
  * @param SimpleXMLElement $element
  * @param StrokeStyle $strokeStyle
  */
 private function addStrokeStyle(SimpleXMLElement $element, StrokeStyle $strokeStyle)
 {
     if ($strokeStyle->isVisible()) {
         $element->addAttribute("stroke", $strokeStyle->getColor());
         $element->addAttribute("stroke-opacity", $strokeStyle->getOpacity());
         $element->addAttribute("stroke-width", $strokeStyle->getWidth());
     } else {
         $element->addAttribute("stroke", "none");
     }
 }