Pinq\Tests\Integration\Traversable\TraversableTest::testThatReturnsNewInstanceOfCorrectTypeWithSameScheme PHP Method

testThatReturnsNewInstanceOfCorrectTypeWithSameScheme() final public method

final public testThatReturnsNewInstanceOfCorrectTypeWithSameScheme ( Pinq\ITraversable $traversable, array $data )
$traversable Pinq\ITraversable
$data array
    public final function testThatReturnsNewInstanceOfCorrectTypeWithSameScheme(\Pinq\ITraversable $traversable, array $data)
    {
        $originalType = get_class($traversable);
        $originalScheme = $traversable->getIteratorScheme();
        $returnedTraversable = $this->_testReturnsNewInstanceOfSameTypeWithSameScheme($traversable);
        if ($returnedTraversable === self::$instance) {
            return;
        }
        $this->assertNotSame($traversable, $returnedTraversable);
        if ($traversable instanceof \Pinq\IQueryable) {
            $this->assertInstanceOf(\Pinq\IQueryable::IQUERYABLE_TYPE, $returnedTraversable);
        } else {
            $this->assertInstanceOf(\Pinq\IQueryable::ITRAVERSABLE_TYPE, $returnedTraversable);
        }
        $this->assertSame($originalScheme, $returnedTraversable->getIteratorScheme());
    }