Exemplo n.º 1
0
 public function testAddPart()
 {
     // Arrange
     $badge = new Badge();
     $part = $this->getMockBuilder('PHP\\Badge\\Part')->disableOriginalConstructor()->getMock();
     // Act
     $badge->addPart($part);
     // Assert
     $this->assertCount(1, $badge->getParts());
     $this->assertEquals(array($part), $badge->getParts());
 }
Exemplo n.º 2
0
 public function testRenderTwoPartWithBorderAndPredifinedWidth()
 {
     // Arrange
     $renderer = new SvgRenderer(new GdWidthCalculator());
     $font = new Font(12, 'verdana', 'fonts/verdana.ttf');
     $badge = new Badge();
     $badge->setBorderRadius(3);
     $badge->addPart(new Part('text1', 'red', 'blue', $font, 100));
     $badge->addPart(new Part('text2', 'blue', 'red', $font, 200));
     // Act
     $result = $renderer->render($badge);
     // Assert
     $this->assertStringEqualsFile('tests/BadgeTestAsset/with-border-two-parts-predefined.svg', $result);
 }
Exemplo n.º 3
0
 public function render(Badge $badge)
 {
     $width = 0;
     $height = $badge->getHeight();
     // Render the boxes, this will also calculate the width of the badge:
     $boxesMarkup = $this->renderBoxes($badge, $width);
     $result = '';
     $result .= sprintf('<svg xmlns="http://www.w3.org/2000/svg" width="%d" height="%d">', $width, $height);
     $result .= '<linearGradient id="gradient" x2="0" y2="100%">';
     $result .= '<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>';
     $result .= '<stop offset="1" stop-opacity=".1"/>';
     $result .= '</linearGradient>';
     $result .= $boxesMarkup;
     $result .= $this->renderLabels($badge);
     $result .= '</svg>';
     return $result;
 }