/**
  * Checks the isValid method
  */
 public function testIsValid()
 {
     self::$directionsRequest = new DirectionsRequest();
     $this->assertFalse(self::$directionsRequest->isValid());
     self::$directionsRequest->setDestination('address');
     $this->assertFalse(self::$directionsRequest->isValid());
     self::$directionsRequest = new DirectionsRequest();
     self::$directionsRequest->setOrigin('address');
     $this->assertFalse(self::$directionsRequest->isValid());
     self::$directionsRequest = new DirectionsRequest();
     self::$directionsRequest->setDestination('address1');
     self::$directionsRequest->setOrigin('address2');
     $this->assertTrue(self::$directionsRequest->isValid());
     $waypointValidTest = new DirectionsWaypoint();
     $waypointValidTest->setLocation('address3');
     self::$directionsRequest->addWaypoint($waypointValidTest);
     $this->assertTrue(self::$directionsRequest->isValid());
     $waypointInvalidTest = new DirectionsWaypoint();
     self::$directionsRequest->addWaypoint($waypointInvalidTest);
     $this->assertFalse(self::$directionsRequest->isValid());
 }
 /**
  * Adds a waypoint to the directions request
  *
  * Available prototypes:
  * - public function addWaypoint(Ivory\GoogleMapBundle\Model\Services\Directions\DirectionsWaypoint $waypoint)
  * - public function addWaypoint(string $location)
  * - public function addWaypoint(double $latitude, double $longitude, boolean $noWrap)
  * - public function addWaypoint(Ivory\GoogleMapBundle\Model\Base\Coordinate $location)
  */
 public function addWaypoint()
 {
     $args = func_get_args();
     if (isset($args[0]) && $args[0] instanceof DirectionsWaypoint) {
         $this->waypoints[] = $args[0];
     } else {
         if (isset($args[0]) && is_numeric($args[0]) && isset($args[1]) && is_numeric($args[1])) {
             $waypoint = new DirectionsWaypoint();
             $waypoint->setLocation($args[0], $args[1]);
             if (isset($args[2]) && is_bool($args[2])) {
                 $waypoint->getLocation()->setNoWrap($args[2]);
             }
             $this->waypoints[] = $waypoint;
         } else {
             if (isset($args[0]) && (is_string($args[0]) || $args[0] instanceof Coordinate)) {
                 $waypoint = new DirectionsWaypoint();
                 $waypoint->setLocation($args[0]);
                 $this->waypoints[] = $waypoint;
             } else {
                 throw new \InvalidArgumentException(sprintf('%s' . PHP_EOL . '%s' . PHP_EOL . '%s' . PHP_EOL . '%s' . PHP_EOL . '%s' . PHP_EOL . '%s', 'The origin setter arguments are invalid.', 'The available prototypes are :', ' - public function addWaypoint(Ivory\\GoogleMapBundle\\Model\\Services\\Directions\\DirectionsWaypoint $waypoint)', ' - public function addWaypoint(string $location)', ' - public function addWaypoint(double $latitude, double $longitude, boolean $noWrap)', ' - public function addWaypoint(Ivory\\GoogleMapBundle\\Model\\Base\\Coordinate $location)'));
             }
         }
     }
 }
 /**
  * Checks the isValid method
  */
 public function testIsValid()
 {
     $this->assertFalse(self::$directionsWaypoint->isValid());
     self::$directionsWaypoint->setLocation('foo');
     $this->assertTrue(self::$directionsWaypoint->isValid());
 }