Neos\Flow\Tests\Unit\Core\ClassLoaderTest::classesFromOverlayedPsr4PackagesAreLoaded PHP Method

classesFromOverlayedPsr4PackagesAreLoaded() public method

    public function classesFromOverlayedPsr4PackagesAreLoaded()
    {
        $this->classLoader = new ClassLoader();
        $mockPackage1 = $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock();
        $mockPackage1->expects($this->any())->method('getNamespaces')->will($this->returnValue(['TestPackage\\Subscriber\\Log']));
        $mockPackage1->expects($this->any())->method('getFlattenedAutoloadConfiguration')->will($this->returnValue([['namespace' => 'TestPackage\\Subscriber\\Log', 'classPath' => 'vfs://Test/Packages/Libraries/test/subPackage/src/', 'mappingType' => ClassLoader::MAPPING_TYPE_PSR4]]));
        $mockPackage2 = $this->getMockBuilder(Package::class)->disableOriginalConstructor()->getMock();
        $mockPackage2->expects($this->any())->method('getFlattenedAutoloadConfiguration')->will($this->returnValue([['namespace' => 'TestPackage', 'classPath' => 'vfs://Test/Packages/Libraries/test/mainPackage/src/', 'mappingType' => ClassLoader::MAPPING_TYPE_PSR4]]));
        $packages = [$mockPackage2, $mockPackage1];
        mkdir('vfs://Test/Packages/Libraries/test/subPackage/src/', 0770, true);
        mkdir('vfs://Test/Packages/Libraries/test/mainPackage/src/Subscriber', 0770, true);
        file_put_contents('vfs://Test/Packages/Libraries/test/subPackage/src/Bar.php', '<?php ' . __CLASS__ . '::$testClassWasLoaded = TRUE; ?>');
        file_put_contents('vfs://Test/Packages/Libraries/test/mainPackage/src/Subscriber/Foo.php', '<?php ' . __CLASS__ . '::$testClassWasLoaded = TRUE; ?>');
        $this->classLoader->setPackages($packages);
        $this->classLoader->loadClass('TestPackage\\Subscriber\\Foo');
        $this->assertTrue(self::$testClassWasLoaded);
        self::$testClassWasLoaded = false;
        $this->classLoader->loadClass('TestPackage\\Subscriber\\Log\\Bar');
        $this->assertTrue(self::$testClassWasLoaded);
    }