public function testGetsContents()
 {
     $handle = fopen('php://temp', 'w+');
     fwrite($handle, 'data');
     $stream = new Stream($handle);
     $this->assertEquals('', $stream->getContents());
     $stream->seek(0);
     $this->assertEquals('data', $stream->getContents());
     $this->assertEquals('', $stream->getContents());
     $stream->seek(0);
     $this->assertEquals('da', $stream->getContents(2));
     $stream->close();
 }
 /**
  * Create a new Credentials instance.
  *
  * @param string|array scope the scope of the access request, expressed
  *   either as an Array or as a space-delimited String.
  *
  * @param Stream jsonKeyStream read it to get the JSON credentials.
  *
  */
 public static function makeCredentials($scope, Stream $jsonKeyStream)
 {
     $jsonKey = json_decode($jsonKeyStream->getContents(), true);
     if (!array_key_exists('type', $jsonKey)) {
         throw new \InvalidArgumentException('json key is missing the type field');
     }
     if ($jsonKey['type'] == 'service_account') {
         return new ServiceAccountCredentials($scope, $jsonKey);
     } else {
         if ($jsonKey['type'] == 'authorized_user') {
             return new UserRefreshCredentials($scope, $jsonKey);
         } else {
             throw new \InvalidArgumentException('invalid value in the type field');
         }
     }
 }
示例#3
0
 public function testCanDetachAndAttachStream()
 {
     $r = fopen('php://temp', 'w+');
     $stream = new Stream($r);
     $stream->write('foo');
     $this->assertTrue($stream->isReadable());
     $this->assertSame($r, $stream->detach());
     $this->assertNull($stream->detach());
     $this->assertFalse($stream->isReadable());
     $this->assertFalse($stream->read(10));
     $this->assertFalse($stream->isWritable());
     $this->assertFalse($stream->write('bar'));
     $this->assertFalse($stream->isSeekable());
     $this->assertFalse($stream->seek(10));
     $this->assertFalse($stream->tell());
     $this->assertTrue($stream->eof());
     $this->assertNull($stream->getSize());
     $this->assertSame('', (string) $stream);
     $this->assertSame('', $stream->getContents());
     $stream->attach($r);
     $stream->seek(0);
     $this->assertEquals('foo', $stream->getContents());
     $this->assertTrue($stream->isReadable());
     $this->assertTrue($stream->isWritable());
     $this->assertTrue($stream->isSeekable());
     $stream->close();
 }