Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/sebastian/global-state/tests/SnapshotTest.php
<?php
/*
 * This file is part of sebastian/global-state.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

declare(strict_types=1);

namespace
SebastianBergmann\GlobalState;

use
ArrayObject;
use
PHPUnit\Framework\TestCase;
use
SebastianBergmann\GlobalState\TestFixture\BlacklistedInterface;
use
SebastianBergmann\GlobalState\TestFixture\SnapshotClass;
use
SebastianBergmann\GlobalState\TestFixture\SnapshotTrait;

/**
 * @covers \SebastianBergmann\GlobalState\Snapshot
 */
class SnapshotTest extends TestCase
{
   
/**
     * @var Blacklist
     */
   
private $blacklist;

    protected function
setUp()
    {
       
$this->blacklist = $this->createMock(Blacklist::class);
    }

    public function
testStaticAttributes()
    {
       
$this->blacklist->method('isStaticAttributeBlacklisted')->willReturnCallback(
            function (
$class) {
                return
$class !== SnapshotClass::class;
            }
        );

       
SnapshotClass::init();

       
$snapshot = new Snapshot($this->blacklist, false, true, false, false, false, false, false, false, false);

       
$expected = [
           
SnapshotClass::class => [
               
'string'      => 'snapshot',
               
'arrayObject' => new ArrayObject([1, 2, 3]),
               
'stdClass'    => new \stdClass(),
            ]
        ];

       
$this->assertEquals($expected, $snapshot->staticAttributes());
    }

    public function
testConstants()
    {
       
$snapshot = new Snapshot($this->blacklist, false, false, true, false, false, false, false, false, false);

       
$this->assertArrayHasKey('GLOBALSTATE_TESTSUITE', $snapshot->constants());
    }

    public function
testFunctions()
    {
       
$snapshot  = new Snapshot($this->blacklist, false, false, false, true, false, false, false, false, false);
       
$functions = $snapshot->functions();

       
$this->assertContains('sebastianbergmann\globalstate\testfixture\snapshotfunction', $functions);
       
$this->assertNotContains('assert', $functions);
    }

    public function
testClasses()
    {
       
$snapshot = new Snapshot($this->blacklist, false, false, false, false, true, false, false, false, false);
       
$classes  = $snapshot->classes();

       
$this->assertContains(TestCase::class, $classes);
       
$this->assertNotContains(Exception::class, $classes);
    }

    public function
testInterfaces()
    {
       
$snapshot   = new Snapshot($this->blacklist, false, false, false, false, false, true, false, false, false);
       
$interfaces = $snapshot->interfaces();

       
$this->assertContains(BlacklistedInterface::class, $interfaces);
       
$this->assertNotContains(\Countable::class, $interfaces);
    }

    public function
testTraits()
    {
        \
spl_autoload_call('SebastianBergmann\GlobalState\TestFixture\SnapshotTrait');

       
$snapshot = new Snapshot($this->blacklist, false, false, false, false, false, false, true, false, false);

       
$this->assertContains(SnapshotTrait::class, $snapshot->traits());
    }

    public function
testIniSettings()
    {
       
$snapshot    = new Snapshot($this->blacklist, false, false, false, false, false, false, false, true, false);
       
$iniSettings = $snapshot->iniSettings();

       
$this->assertArrayHasKey('date.timezone', $iniSettings);
       
$this->assertEquals('Etc/UTC', $iniSettings['date.timezone']);
    }

    public function
testIncludedFiles()
    {
       
$snapshot = new Snapshot($this->blacklist, false, false, false, false, false, false, false, false, true);
       
$this->assertContains(__FILE__, $snapshot->includedFiles());
    }
}