Exemplo n.º 1
0
 public function case_get_vendor_factory()
 {
     $self = $this;
     $this->given($transport = 'foo', $factory = function ($socketUri) use(&$called, $self, $transport) {
         $called = true;
         $self->string($socketUri)->isEqualTo($transport . '://bar/baz');
         return new LUT(str_replace($transport, 'tcp', $socketUri));
     }, SUT::register($transport, $factory))->when(function () use(&$result, $transport) {
         $result = SUT::getFactory($transport);
     })->then->object($result)->isInstanceOf('Closure')->object($result('foo://bar/baz'))->isEqualTo(new LUT('tcp://bar/baz'))->boolean($called)->isTrue();
 }
Exemplo n.º 2
0
 /**
  * Set socket.
  *
  * @param   string  $socketUri    Socket URI.
  * @return  \Hoa\Socket
  * @throws  \Hoa\Socket\Exception
  */
 protected function setSocket($socketUri)
 {
     if (false === ($pos = strpos($socketUri, '://'))) {
         $socket = new Socket($socketUri);
     } else {
         $transport = substr($socketUri, 0, $pos);
         $factory = Socket\Transport::getFactory($transport);
         $socket = $factory($socketUri);
         if (!$socket instanceof Socket) {
             throw new Socket\Exception('The transport registered for scheme “%s” is not valid: ' . 'It must return a valid Hoa\\Socket\\Socket instance.', 0, $transport);
         }
     }
     $old = $this->_socket;
     $this->_socket = $socket;
     return $old;
 }