/**
  * {@inheritdoc}
  */
 public function define($location)
 {
     if (!$location instanceof LocationInterface) {
         $location = new Location($location, []);
     }
     $name = $location->name();
     if (isset($this->endpoints[$name]) && !$this->endpoints[$name] instanceof ServiceInterface) {
         throw AmbiguousServiceException::makeAlreadyDiscovered($name);
     }
     if (!isset($this->endpoints[$name])) {
         $this->endpoints[$name] = new Service($location);
     }
     return $this->endpoints[$name];
 }
 /**
  * Location should return first URL when matching preferred schemas.
  */
 public function testGettingUnsupportedUrl()
 {
     $url = $this->location->url(['sftp', 'ftp']);
     $this->assertNull($url);
 }