Commit a6fd0be1 authored by Jeremy Mikola's avatar Jeremy Mikola

Functional test for GridFS StreamWrapper

parent 391334a8
<?php
namespace MongoDB\Tests\GridFS;
use MongoDB\BSON\Binary;
/**
* Functional tests for the internal StreamWrapper class.
*/
class StreamWrapperFunctionalTest extends FunctionalTestCase
{
public function setUp()
{
parent::setUp();
$this->filesCollection->insertMany([
['_id' => 'length-10', 'length' => 10, 'chunkSize' => 4],
]);
$this->chunksCollection->insertMany([
['_id' => 1, 'files_id' => 'length-10', 'n' => 0, 'data' => new Binary('abcd', Binary::TYPE_GENERIC)],
['_id' => 2, 'files_id' => 'length-10', 'n' => 1, 'data' => new Binary('efgh', Binary::TYPE_GENERIC)],
['_id' => 3, 'files_id' => 'length-10', 'n' => 2, 'data' => new Binary('ij', Binary::TYPE_GENERIC)],
]);
}
public function testReadableStreamClose()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertTrue(fclose($stream));
}
public function testReadableStreamEof()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertFalse(feof($stream));
$this->assertStreamContents('abcdefghij', $stream);
$this->assertTrue(feof($stream));
}
public function testReadableStreamRead()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertSame('abc', fread($stream, 3));
$this->assertSame('defghij', fread($stream, 10));
$this->assertSame('', fread($stream, 3));
}
public function testReadableStreamWrite()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertSame(0, fwrite($stream, 'foobar'));
}
public function testWritableStreamClose()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertTrue(fclose($stream));
$this->assertStreamContents('foobar', $this->bucket->openDownloadStreamByName('filename'));
}
public function testWritableStreamEof()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertFalse(feof($stream));
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertFalse(feof($stream));
}
public function testWritableStreamRead()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame('', fread($stream, 8192));
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertSame('', fread($stream, 8192));
}
public function testWritableStreamWrite()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame(6, fwrite($stream, 'foobar'));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment