/**
  * Checks the render method
  */
 public function testRender()
 {
     $markerShapeTest = new MarkerShape();
     $markerShapeTest->setType('poly');
     $markerShapeTest->setCoordinates(array(1, 2, 3, 4, 5, 6));
     $this->assertEquals(self::$markerShapeHelper->render($markerShapeTest), 'var ' . $markerShapeTest->getJavascriptVariable() . ' = new google.maps.MarkerShape({"type":"poly","coords":[1,2,3,4,5,6]});' . PHP_EOL);
     $markerShapeTest->setType('circle');
     $markerShapeTest->setCoordinates(array(1, 2, 3));
     $this->assertEquals(self::$markerShapeHelper->render($markerShapeTest), 'var ' . $markerShapeTest->getJavascriptVariable() . ' = new google.maps.MarkerShape({"type":"circle","coords":[1,2,3]});' . PHP_EOL);
     $markerShapeTest->setType('rect');
     $markerShapeTest->setCoordinates(array(-1, -1, 1, 1));
     $this->assertEquals(self::$markerShapeHelper->render($markerShapeTest), 'var ' . $markerShapeTest->getJavascriptVariable() . ' = new google.maps.MarkerShape({"type":"rect","coords":[-1,-1,1,1]});' . PHP_EOL);
 }
 /**
  * Checks the render method
  */
 public function testRender()
 {
     $mapTest = new Map();
     $markerTest = new Overlays\Marker();
     $markerTest->setPosition(new Base\Coordinate(1.1, 2.1, true));
     $markerTest->setAnimation(Overlays\Animation::BOUNCE);
     $iconTest = new Overlays\MarkerImage();
     $iconTest->setUrl('url');
     $markerTest->setIcon($iconTest);
     $shadowTest = new Overlays\MarkerImage();
     $shadowTest->setUrl('url');
     $markerTest->setShadow($shadowTest);
     $shapeTest = new Overlays\MarkerShape();
     $shapeTest->setType('poly');
     $shapeTest->setCoordinates(array(1, 2, 3, 4));
     $markerTest->setShape($shapeTest);
     $infoWindowTest = new Overlays\InfoWindow();
     $infoWindowTest->setContent('content');
     $markerTest->setInfoWindow($infoWindowTest);
     $this->assertEquals(self::$markerHelper->render($markerTest, $mapTest), 'var ' . $markerTest->getIcon()->getJavascriptVariable() . ' = new google.maps.MarkerImage("url");' . PHP_EOL . 'var ' . $markerTest->getShadow()->getJavascriptVariable() . ' = new google.maps.MarkerImage("url");' . PHP_EOL . 'var ' . $markerTest->getShape()->getJavascriptVariable() . ' = new google.maps.MarkerShape({"type":"poly","coords":[1,2,3,4]});' . PHP_EOL . 'var ' . $markerTest->getJavascriptVariable() . ' = new google.maps.Marker({"map":' . $mapTest->getJavascriptVariable() . ',"position":new google.maps.LatLng(1.1, 2.1, true), "animation":google.maps.Animation.BOUNCE, "icon":' . $markerTest->getIcon()->getJavascriptVariable() . ', "shadow":' . $markerTest->getShadow()->getJavascriptVariable() . ', "shape":' . $markerTest->getShape()->getJavascriptVariable() . '});' . PHP_EOL . 'var ' . $markerTest->getInfoWindow()->getJavascriptVariable() . ' = new google.maps.InfoWindow({"content":"content"});' . PHP_EOL);
     $markerTest->setOptions(array('option1' => 'value1', 'option2' => 'value2'));
     $this->assertEquals(self::$markerHelper->render($markerTest, $mapTest), 'var ' . $markerTest->getIcon()->getJavascriptVariable() . ' = new google.maps.MarkerImage("url");' . PHP_EOL . 'var ' . $markerTest->getShadow()->getJavascriptVariable() . ' = new google.maps.MarkerImage("url");' . PHP_EOL . 'var ' . $markerTest->getShape()->getJavascriptVariable() . ' = new google.maps.MarkerShape({"type":"poly","coords":[1,2,3,4]});' . PHP_EOL . 'var ' . $markerTest->getJavascriptVariable() . ' = new google.maps.Marker({"map":' . $mapTest->getJavascriptVariable() . ',"position":new google.maps.LatLng(1.1, 2.1, true), "animation":google.maps.Animation.BOUNCE, "icon":' . $markerTest->getIcon()->getJavascriptVariable() . ', "shadow":' . $markerTest->getShadow()->getJavascriptVariable() . ', "shape":' . $markerTest->getShape()->getJavascriptVariable() . ',"option1":"value1","option2":"value2"});' . PHP_EOL . 'var ' . $markerTest->getInfoWindow()->getJavascriptVariable() . ' = new google.maps.InfoWindow({"content":"content"});' . PHP_EOL);
 }
 /**
  * Renders the marker shape
  *
  * @param Ivory\GoogleMapBundle\Model\Overlays\MarkerShape $markerShape
  * @return string HTML output
  */
 public function render(MarkerShape $markerShape)
 {
     return sprintf('var %s = new google.maps.MarkerShape(%s);' . PHP_EOL, $markerShape->getJavascriptVariable(), json_encode(array('type' => $markerShape->getType(), 'coords' => $markerShape->getCoordinates())));
 }
 /**
  * Checks the shape getter & setter
  */
 public function testShape()
 {
     $markerShapeTest = new MarkerShape();
     $markerShapeTest->setCoordinates(array(1, 2, 3, 4));
     self::$object->setShape($markerShapeTest);
     $this->assertEquals(self::$object->getShape()->getType(), 'poly');
     $this->assertEquals(self::$object->getShape()->getCoordinates(), array(1, 2, 3, 4));
     self::$object->setShape('rect', array(1, 2, 3, 4));
     $this->assertEquals(self::$object->getShape()->getType(), 'rect');
     $this->assertEquals(self::$object->getShape()->getCoordinates(), array(1, 2, 3, 4));
     $this->setExpectedException('InvalidArgumentException');
     self::$object->setShape('foo');
 }
 /**
  * Create a marker shape
  */
 public function __construct()
 {
     parent::__construct();
 }