FunctionalTestCase.php 1.57 KB
Newer Older
1 2 3 4
<?php

namespace MongoDB\Tests\GridFS;

5
use MongoDB\Collection;
6
use MongoDB\GridFS\Bucket;
7 8 9 10 11 12 13 14
use MongoDB\Tests\FunctionalTestCase as BaseFunctionalTestCase;

/**
 * Base class for GridFS functional tests.
 */
abstract class FunctionalTestCase extends BaseFunctionalTestCase
{
    protected $bucket;
15 16
    protected $chunksCollection;
    protected $filesCollection;
17 18 19 20

    public function setUp()
    {
        parent::setUp();
21 22 23 24 25 26

        $this->bucket = new Bucket($this->manager, $this->getDatabaseName());
        $this->bucket->drop();

        $this->chunksCollection = new Collection($this->manager, $this->getDatabaseName(), 'fs.chunks');
        $this->filesCollection = new Collection($this->manager, $this->getDatabaseName(), 'fs.files');
27 28
    }

29
    /**
30 31 32
     * Asserts that a variable is a stream containing the expected data.
     *
     * Note: this will seek to the beginning of the stream before reading.
33 34 35 36 37
     *
     * @param string   $expectedContents
     * @param resource $stream
     */
    protected function assertStreamContents($expectedContents, $stream)
38
    {
39 40
        $this->assertInternalType('resource', $stream);
        $this->assertSame('stream', get_resource_type($stream));
41
        $this->assertEquals($expectedContents, stream_get_contents($stream, -1, 0));
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
    }

    /**
     * Creates an in-memory stream with the given data.
     *
     * @param string $data
     * @return resource
     */
    protected function createStream($data = '')
    {
        $stream = fopen('php://temp', 'w+b');
        fwrite($stream, $data);
        rewind($stream);

        return $stream;
57 58
    }
}