You are here

class IssueTest in Drupal 7 to 8/9 Module Upgrader 8

@group DMU

Hierarchy

Expanded class hierarchy of IssueTest

File

tests/src/Unit/IssueTest.php, line 11

Namespace

Drupal\Tests\drupalmoduleupgrader\Unit
View source
class IssueTest extends TestBase {

  /**
   * @var \Drupal\drupalmoduleupgrader\IssueInterface
   */
  private $issue;
  public function setUp() {
    parent::setUp();
    $this->issue = new Issue($this->target, 'Foobaz');
  }
  public function testTitle() {
    $this->issue
      ->setTitle('Foobar');
    $this
      ->assertEquals('Foobar', $this->issue
      ->getTitle());
  }
  public function testSummary() {
    $this->issue
      ->setSummary('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.');
    $this
      ->assertEquals("<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>\n", $this->issue
      ->getSummary());
  }
  public function testDocumentation() {
    $this->issue
      ->addDocumentation('http://www.google.com', 'Just Google it, baby!');
    $documentation = $this->issue
      ->getDocumentation();
    $this
      ->assertInternalType('array', $documentation);
    $this
      ->assertCount(1, $documentation);
    $this
      ->assertArrayHasKey('url', $documentation[0]);
    $this
      ->assertArrayHasKey('title', $documentation[0]);
    $this
      ->assertEquals('http://www.google.com', $documentation[0]['url']);
    $this
      ->assertEquals('Just Google it, baby!', $documentation[0]['title']);
  }
  public function testViolationsAndDetectors() {
    $analyzer = $this
      ->getMockBuilder('\\Drupal\\drupalmoduleupgrader\\AnalyzerBase')
      ->disableOriginalConstructor()
      ->getMock();
    $analyzer
      ->method('getPluginId')
      ->willReturn('blarg');
    $this->issue
      ->addAffectedFile($this->dir
      ->getChild('foo.info')
      ->url(), $analyzer);
    $code = <<<'END'
<?php

/**
 * Implements hook_permission().
 */
function foo_permission() {
  return array();
}
END;
    $this->dir
      ->getChild('foo.module')
      ->setContent($code);
    $node = $this->target
      ->open($this->dir
      ->getChild('foo.module')
      ->url())
      ->children(Filter::isFunction('foo_permission'))
      ->get(0);
    $this->issue
      ->addViolation($node, $analyzer);
    $violations = $this->issue
      ->getViolations();
    $this
      ->assertInternalType('array', $violations);
    $this
      ->assertCount(2, $violations);
    $this
      ->assertArrayHasKey('file', $violations[0]);
    $this
      ->assertArrayNotHasKey('line_number', $violations[0]);
    $this
      ->assertEquals($this->dir
      ->getChild('foo.info')
      ->url(), $violations[0]['file']);
    $this
      ->assertArrayHasKey('file', $violations[1]);
    $this
      ->assertArrayHasKey('line_number', $violations[1]);
    $this
      ->assertEquals($this->dir
      ->getChild('foo.module')
      ->url(), $violations[1]['file']);
    $detectors = $this->issue
      ->getDetectors();
    $this
      ->assertInternalType('array', $detectors);
    $this
      ->assertCount(1, $detectors);
    $this
      ->assertEquals($analyzer
      ->getPluginId(), $detectors[0]);
  }
  public function testFixes() {
    $this->issue
      ->addFix('foo');
    $this->issue
      ->addFix('baz', [
      'bar' => 'wambooli',
    ]);
    $fixes = $this->issue
      ->getFixes();
    $this
      ->assertInternalType('array', $fixes);
    $this
      ->assertCount(2, $fixes);
    $this
      ->assertEquals([
      '_plugin_id' => 'foo',
    ], $fixes[0]);
    $this
      ->assertEquals([
      '_plugin_id' => 'baz',
      'bar' => 'wambooli',
    ], $fixes[1]);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ContainerMockTrait::$container protected property
ContainerMockTrait::mockContainer protected function
ContainerMockTrait::mockLogger protected function
ContainerMockTrait::mockTranslator protected function
IssueTest::$issue private property
IssueTest::setUp public function Mocks an entire module, called foo, in a virtual file system. Overrides TestBase::setUp
IssueTest::testDocumentation public function
IssueTest::testFixes public function
IssueTest::testSummary public function
IssueTest::testTitle public function
IssueTest::testViolationsAndDetectors public function
ModuleMockerTrait::mockModule protected function
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
SQLiteDatabaseTrait::$db protected property
SQLiteDatabaseTrait::initDB protected function
TestBase::$dir protected property
TestBase::$info protected property The parsed annotations for the test class and method being executed.
TestBase::$target protected property
TestBase::getPlugin protected function Instantiates the plugin class covered by this test (as indicated by the @covers annotation). The plugin instance is given a randomly generated ID and description. Dependencies will be pulled from $this->container, so this should only be called once… 1
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.