73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Magento\Setup;
 | 
						|
 | 
						|
use Magento\Framework\Setup\Declaration\Schema\DryRunLogger;
 | 
						|
use Magento\TestFramework\Deploy\CliCommand;
 | 
						|
use Magento\TestFramework\Deploy\TestModuleManager;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use Magento\TestFramework\TestCase\SetupTestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * The purpose of this test is verifying declarative installation works.
 | 
						|
 */
 | 
						|
class DryRunTest extends SetupTestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var  TestModuleManager
 | 
						|
     */
 | 
						|
    private $moduleManager;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var CliCommand
 | 
						|
     */
 | 
						|
    private $cliCommad;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $objectManager = Bootstrap::getObjectManager();
 | 
						|
        $this->moduleManager = $objectManager->get(TestModuleManager::class);
 | 
						|
        $this->cliCommad = $objectManager->get(CliCommand::class);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @moduleName Magento_TestSetupDeclarationModule1
 | 
						|
     * @dataProviderFromFile Magento/TestSetupDeclarationModule1/fixture/dry_run_log.php
 | 
						|
     */
 | 
						|
    public function testDryRunOnCleanDatabase()
 | 
						|
    {
 | 
						|
        $logFileName = TESTS_TEMP_DIR . '/var/log/' . DryRunLogger::FILE_NAME;
 | 
						|
        $this->cliCommad->install(
 | 
						|
            ['Magento_TestSetupDeclarationModule1'],
 | 
						|
            ['dry-run' => true]
 | 
						|
        );
 | 
						|
        self::assertFileExists($logFileName);
 | 
						|
        $data = file_get_contents($logFileName);
 | 
						|
        self::assertEquals($this->getData()[0], $data);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @moduleName Magento_TestSetupDeclarationModule1
 | 
						|
     * @dataProviderFromFile Magento/TestSetupDeclarationModule1/fixture/dry_run_log_on_upgrade.php
 | 
						|
     */
 | 
						|
    public function testDryRunOnUpgrade()
 | 
						|
    {
 | 
						|
        $logFileName = TESTS_TEMP_DIR . '/var/log/' . DryRunLogger::FILE_NAME;
 | 
						|
        $this->cliCommad->install(['Magento_TestSetupDeclarationModule1']);
 | 
						|
        $this->moduleManager->updateRevision(
 | 
						|
            'Magento_TestSetupDeclarationModule1',
 | 
						|
            'column_modifications',
 | 
						|
            'db_schema.xml',
 | 
						|
            'etc'
 | 
						|
        );
 | 
						|
        $this->cliCommad->upgrade(['dry-run' => true]);
 | 
						|
        self::assertFileExists($logFileName);
 | 
						|
        $data = file_get_contents($logFileName);
 | 
						|
        self::assertEquals($this->getData()[0], $data);
 | 
						|
    }
 | 
						|
}
 |