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'); } } }
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(); }