Exemplo n.º 1
0
 /**
  * Adds config values to the public properties when a new object is created.
  *
  * @param array $config Configuration options. Possible values are:
  *                      - `'version'`  _string_ : (defaults `'1.1'`).
  *                      - `'scheme'`   _string_ : (defaults `'http'`).
  *                      - `'type'`     _string_ : (defaults `null`).
  *                      - `'headers'`  _mixed_  : (defaults `[]`).
  */
 public function __construct($config = [])
 {
     $defaults = ['version' => '1.1', 'type' => null, 'encoding' => null, 'format' => null, 'data' => null, 'headers' => [], 'classes' => ['auth' => 'Lead\\Net\\Http\\Auth', 'media' => 'Lead\\Net\\Http\\Media', 'stream' => 'Lead\\Storage\\Stream\\Stream', 'headers' => 'Lead\\Net\\Http\\Headers']];
     $config = Set::merge($defaults, $config);
     $this->_classes = $config['classes'];
     $this->version($config['version']);
     if (is_object($config['headers'])) {
         $this->headers = $config['headers'];
     } else {
         $headers = $this->_classes['headers'];
         $this->headers = new $headers(['data' => $config['headers']]);
     }
     if ($config['type']) {
         $this->type($config['type']);
     } elseif (isset($this->headers['Content-Type'])) {
         $this->type($this->headers['Content-Type']->value());
     }
     if ($config['encoding']) {
         $this->encoding($config['encoding']);
     }
     $this->format($config['format']);
     parent::__construct($config);
     if ($config['data'] !== null) {
         $this->set($config['data']);
     }
 }
Exemplo n.º 2
0
            $stream = $message->stream();
            expect((string) $stream)->toBe('Hello World!');
        });
        it("sets the body using a stream", function () {
            $message = new Message();
            $message->stream('Hello World!');
            $stream = $message->stream();
            expect((string) $stream)->toBe('Hello World!');
        });
    });
    describe("->chunkSize()", function () {
        it("gets/sets the chunk size", function () {
            $message = new Message();
            expect($message->chunkSize())->toBe(256);
            expect($message->chunkSize(512))->toBe($message);
            expect($message->chunkSize())->toBe(512);
        });
    });
    describe("->export()", function () {
        it("returns the query", function () {
            $message = new Message(['scheme' => 'http', 'host' => 'www.domain.com', 'port' => 80, 'username' => 'username', 'password' => 'password', 'path' => 'index.php']);
            expect($message->export())->toEqual(['body' => $message->stream()]);
        });
    });
    describe("->__toString", function () {
        it("casts to a string", function () {
            $message = new Message(['body' => 'Body Message']);
            expect((string) $message)->toBe('Body Message');
        });
    });
});