55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace Magento\Test\Legacy;
 | 
						|
 | 
						|
use Magento\TestFramework\Utility\AddedFiles;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * Static test for parameterized data fixtures
 | 
						|
 */
 | 
						|
class LegacyFixtureTest extends TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Prevent creating new fixture files
 | 
						|
     *
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function testNew(): void
 | 
						|
    {
 | 
						|
        $docUrl = 'https://devdocs.magento.com/guides/v2.4/test/integration/parameterized_data_fixture.html';
 | 
						|
        $files = AddedFiles::getAddedFilesList(__DIR__ . '/..');
 | 
						|
        $legacyFixtureFiles = [];
 | 
						|
        foreach ($files as $file) {
 | 
						|
            if (pathinfo($file, PATHINFO_EXTENSION) === 'php'
 | 
						|
                && (
 | 
						|
                    preg_match('/(integration\/testsuite|api-functional\/testsuite).*\/(_files|Fixtures)/', $file)
 | 
						|
                    // Cover the case when tests are located in the module folder instead of dev/tests.
 | 
						|
                    // for instance inventory
 | 
						|
                    || (
 | 
						|
                        strpos($file, 'dev/tests/') === false
 | 
						|
                        && preg_match('/app\/code\/.*\/Test.*\/(_files|Fixtures)/', $file)
 | 
						|
                        && !preg_match('/app\/code\/.*\/Tests?\/Performance\/(_files|Fixtures)/', $file)
 | 
						|
                    )
 | 
						|
                )
 | 
						|
            ) {
 | 
						|
                $legacyFixtureFiles[] = str_replace(BP . '/', '', $file);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        $this->assertCount(
 | 
						|
            0,
 | 
						|
            $legacyFixtureFiles,
 | 
						|
            "The format used for creating fixtures is deprecated. Please use parameterized fixture format.\n"
 | 
						|
            . "For details please look at $docUrl.\r\n"
 | 
						|
            . "The following fixture files were added:\r\n"
 | 
						|
            . implode(PHP_EOL, $legacyFixtureFiles)
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |