Пример #1
0
 public function testCloneIsDeep()
 {
     $r = new Request('GET', '/test', ['foo' => 'baz'], Stream::factory('foo'));
     $r2 = clone $r;
     $this->assertNotSame($r->getEmitter(), $r2->getEmitter());
     $this->assertEquals('foo', $r2->getBody());
     $r->getConfig()->set('test', 123);
     $this->assertFalse($r2->getConfig()->hasKey('test'));
     $r->setPath('/abc');
     $this->assertEquals('/test', $r2->getPath());
 }
Пример #2
0
 public function testCreatesRingRequests()
 {
     $stream = Stream::factory('test');
     $request = new Request('GET', 'http://httpbin.org/get?a=b', ['test' => 'hello'], $stream);
     $request->getConfig()->set('foo', 'bar');
     $trans = new Transaction(new Client(), $request);
     $factory = new MessageFactory();
     $fsm = new RequestFsm(function () {
     }, new MessageFactory());
     $r = RingBridge::prepareRingRequest($trans, $factory, $fsm);
     $this->assertEquals('http', $r['scheme']);
     $this->assertEquals('1.1', $r['version']);
     $this->assertEquals('GET', $r['http_method']);
     $this->assertEquals('http://httpbin.org/get?a=b', $r['url']);
     $this->assertEquals('/get', $r['uri']);
     $this->assertEquals('a=b', $r['query_string']);
     $this->assertEquals(['Host' => ['httpbin.org'], 'test' => ['hello']], $r['headers']);
     $this->assertSame($stream, $r['body']);
     $this->assertEquals(['foo' => 'bar'], $r['client']);
     $this->assertFalse($r['future']);
 }