This repository has been archived on 2025-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
drupalcampbristol/vendor/drupal/console/Test/BaseTestCase.php

124 lines
3.9 KiB
PHP
Raw Normal View History

2018-11-23 12:29:20 +00:00
<?php
namespace Drupal\Console\Test;
use Symfony\Component\Console\Helper\HelperSet;
use Drupal\Console\Helper\TwigRendererHelper;
use Drupal\Console\Helper\HelperTrait;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Drupal\Console\Helper\ContainerHelper;
abstract class BaseTestCase extends \PHPUnit_Framework_TestCase
{
use HelperTrait;
public $dir;
/**
* @var \Symfony\Component\Console\Helper\HelperSet
*/
protected $helperSet;
protected function setup()
{
$this->setUpTemporaryDirectory();
}
public function setUpTemporaryDirectory()
{
$this->dir = sys_get_temp_dir() . "/modules";
}
public function getHelperSet($input = null)
{
if (!$this->helperSet) {
$stringHelper = $this->getMockBuilder('Drupal\Console\Helper\StringHelper')
->disableOriginalConstructor()
->setMethods(['createMachineName'])
->getMock();
$stringHelper->expects($this->any())
->method('createMachineName')
->will($this->returnArgument(0));
$validator = $this->getMockBuilder('Drupal\Console\Helper\ValidatorHelper')
->disableOriginalConstructor()
->setMethods(['validateModuleName'])
->getMock();
$validator->expects($this->any())
->method('validateModuleName')
->will($this->returnArgument(0));
$translator = $this->getTranslatorHelper();
$chain = $this
->getMockBuilder('Drupal\Console\Helper\ChainCommandHelper')
->disableOriginalConstructor()
->setMethods(['addCommand', 'getCommands'])
->getMock();
$drupal = $this
->getMockBuilder('Drupal\Console\Helper\DrupalHelper')
->setMethods(['isBootable', 'getDrupalRoot'])
->getMock();
$siteHelper = $this
->getMockBuilder('Drupal\Console\Helper\SiteHelper')
->disableOriginalConstructor()
->setMethods(['setModulePath', 'getModulePath'])
->getMock();
$siteHelper->expects($this->any())
->method('getModulePath')
->will($this->returnValue($this->dir));
$consoleRoot = __DIR__.'/../';
$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator($consoleRoot));
$loader->load('services.yml');
$this->helperSet = new HelperSet(
[
'renderer' => new TwigRendererHelper(),
'string' => $stringHelper,
'validator' => $validator,
'translator' => $translator,
'site' => $siteHelper,
'chain' => $chain,
'drupal' => $drupal,
'container' => new ContainerHelper($container),
]
);
}
return $this->helperSet;
}
protected function getInputStream($input)
{
$stream = fopen('php://memory', 'r+', false);
fputs($stream, $input . str_repeat("\n", 10));
rewind($stream);
return $stream;
}
public function getTranslatorHelper()
{
$translatorHelper = $this
->getMockBuilder('Drupal\Console\Helper\TranslatorHelper')
->disableOriginalConstructor()
->setMethods(['loadResource', 'trans', 'getMessagesByModule', 'writeTranslationsByModule'])
->getMock();
$translatorHelper->expects($this->any())
->method('getMessagesByModule')
->will($this->returnValue([]));
return $translatorHelper;
}
}