/**
  * Checks the render method
  */
 public function testRender()
 {
     $mapTest = new Map();
     $rectangleTest = new Rectangle();
     $boundTest = new Bound();
     $boundTest->setSouthWest(new Coordinate(-1.1, -2.1, true));
     $boundTest->setNorthEast(new Coordinate(1.1, 2.1, true));
     $rectangleTest->setBound($boundTest);
     $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . '});' . PHP_EOL);
     $rectangleTest->setOptions(array('option1' => 'value1', 'option2' => 'value2'));
     $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . ',"option1":"value1","option2":"value2"});' . PHP_EOL);
 }
 /**
  * Renders the rectangle
  *
  * @param Ivory\GoogleMapBundle\Model\Overlays\Rectangle $rectangle
  * @param Ivory\GoogleMapBundle\Model\Map $map
  * @return string HTML output
  */
 public function render(Rectangle $rectangle, Map $map)
 {
     $rectangleOptions = $rectangle->getOptions();
     $rectangleJSONOptions = sprintf('{"map":%s,"bounds":%s', $map->getJavascriptVariable(), $rectangle->getBound()->getJavascriptVariable());
     if (!empty($rectangleOptions)) {
         $rectangleJSONOptions .= ',' . substr(json_encode($rectangleOptions), 1);
     } else {
         $rectangleJSONOptions .= '}';
     }
     $html = array();
     $html[] = $this->boundHelper->render($rectangle->getBound());
     $html[] = sprintf('var %s = new google.maps.Rectangle(%s);' . PHP_EOL, $rectangle->getJavascriptVariable(), $rectangleJSONOptions);
     return implode('', $html);
 }
 /**
  * Checks the render rectangles method
  */
 public function testRenderRectangles()
 {
     $mapTest = new Model\Map();
     $rectangleTest = new Overlays\Rectangle();
     $rectangleTest->getBound()->setSouthWest(new Base\Coordinate(-1.1, -2.1, true));
     $rectangleTest->getBound()->setNorthEast(new Base\Coordinate(1.1, 2.1, true));
     $mapTest->addRectangle($rectangleTest);
     $this->assertEquals(self::$mapHelper->renderRectangles($mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . '});' . PHP_EOL);
 }
 /**
  * Create a rectangle
  */
 public function __construct()
 {
     parent::__construct();
 }