mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 17:27:36 +00:00
* MC-37479: Support by Magento Content Design * MC-37463: Support by Magento Maintenance Mode
123 lines
3.3 KiB
PHP
123 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Backend\Test\Unit\Console\Command;
|
|
|
|
use Magento\Backend\Console\Command\MaintenanceDisableCommand;
|
|
use Magento\Framework\App\MaintenanceMode;
|
|
use Magento\Backend\Model\Validator\IpValidator;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\Console\Tester\CommandTester;
|
|
|
|
class MaintenanceDisableCommandTest extends TestCase
|
|
{
|
|
/**
|
|
* @var MaintenanceMode|MockObject
|
|
*/
|
|
private $maintenanceMode;
|
|
|
|
/**
|
|
* @var IpValidator|MockObject
|
|
*/
|
|
private $ipValidator;
|
|
|
|
/**
|
|
* @var MaintenanceDisableCommand
|
|
*/
|
|
private $command;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->maintenanceMode = $this->createMock(MaintenanceMode::class);
|
|
$this->ipValidator = $this->createMock(IpValidator::class);
|
|
$this->command = new MaintenanceDisableCommand($this->maintenanceMode, $this->ipValidator);
|
|
}
|
|
|
|
/**
|
|
* @param array $input
|
|
* @param array $validatorMessages
|
|
* @param string $expectedMessage
|
|
* @dataProvider executeDataProvider
|
|
*/
|
|
public function testExecute(array $input, array $validatorMessages, $expectedMessage)
|
|
{
|
|
$return = isset($input['--ip']) ? ($input['--ip'] !== ['none'] ? $input['--ip'] : []) : [];
|
|
$this->maintenanceMode
|
|
->expects($this->any())
|
|
->method('getAddressInfo')
|
|
->willReturn($return);
|
|
$this->ipValidator->expects($this->once())->method('validateIps')->willReturn($validatorMessages);
|
|
$tester = new CommandTester($this->command);
|
|
$tester->execute($input);
|
|
$this->assertEquals($expectedMessage, $tester->getDisplay());
|
|
}
|
|
|
|
/**
|
|
* return array
|
|
*/
|
|
public function executeDataProvider()
|
|
{
|
|
return [
|
|
[
|
|
['--ip' => ['127.0.0.1', '127.0.0.2']],
|
|
[],
|
|
'Disabled maintenance mode' . PHP_EOL .
|
|
'Set exempt IP-addresses: 127.0.0.1, 127.0.0.2' . PHP_EOL
|
|
],
|
|
[
|
|
['--ip' => ['none']],
|
|
[],
|
|
'Disabled maintenance mode' . PHP_EOL .
|
|
'Set exempt IP-addresses: none' . PHP_EOL
|
|
],
|
|
[
|
|
[],
|
|
[],
|
|
'Disabled maintenance mode' . PHP_EOL
|
|
],
|
|
[
|
|
['--ip' => ['127.0']],
|
|
['Invalid IP 127.0'],
|
|
'Invalid IP 127.0' . PHP_EOL
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider isSetAddressInfoDataProvider
|
|
* @param array $ip
|
|
* @param bool $expected
|
|
*/
|
|
public function testIsSetAddressInfo($ip, $expected)
|
|
{
|
|
$this->maintenanceMode
|
|
->expects($this->any())
|
|
->method('getAddressInfo')
|
|
->willReturn($ip);
|
|
|
|
$this->assertEquals($expected, $this->command->isSetAddressInfo());
|
|
}
|
|
|
|
/**
|
|
* return array
|
|
*/
|
|
public function isSetAddressInfoDataProvider()
|
|
{
|
|
return [
|
|
[
|
|
'ip' => ['127.0.0.1', '127.0.0.2'],
|
|
'expected' => true
|
|
],
|
|
[
|
|
'ip' => [],
|
|
'expected' => false
|
|
],
|
|
];
|
|
}
|
|
}
|