Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Fixer / CreateClassTest.php
diff --git a/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Plugin/DMU/Fixer/CreateClassTest.php b/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Plugin/DMU/Fixer/CreateClassTest.php
new file mode 100644 (file)
index 0000000..ab1cdc7
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+
+namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Fixer;
+
+use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\CreateClass;
+use Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer\Delete;
+use Drupal\drupalmoduleupgrader\Plugin\DMU\Indexer\Classes;
+use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
+
+/**
+ * @group DMU.Fixer
+ */
+class CreateClassTest extends TestBase {
+
+  public function test() {
+    $indexer = new Classes([], 'class', [], $this->db, $this->target);
+    $indexer->build();
+
+    $this
+      ->container
+      ->get('plugin.manager.drupalmoduleupgrader.indexer')
+      ->method('createInstance')
+      ->with('class')
+      ->willReturn($indexer);
+
+    $config = [
+      'class' => '\Drupal\foo\MyBaz',
+      'destination' => '~/src/MyBaz.php',
+      'parent' => '\Drupal\Core\Baz\BazBase',
+      'interfaces' => [
+        '\Drupal\Core\Baz\BazInterface',
+        '\Drupal\Core\Executable\ExecutableInterface',
+      ],
+      'doc' => 'This is my bazzifier. There are many like it, but this one is mine.',
+    ];
+    $plugin = new CreateClass($config, uniqID(), []);
+    $plugin->setTarget($this->target);
+    $plugin->execute();
+
+    $this->assertTrue($indexer->has('MyBaz'));
+    $classes = $indexer->get('MyBaz');
+    $this->assertCount(1, $classes);
+    /** @var \Pharborist\Objects\ClassNode $class */
+    $class = $classes->get(0);
+    $this->assertInstanceOf('\Pharborist\Objects\ClassNode', $class);
+    $this->assertEquals('\Drupal\foo\MyBaz', $class->getName()->getAbsolutePath());
+    $this->assertEquals('MyBaz', $class->getName()->getText());
+    $parent = $class->getExtends();
+    $this->assertInstanceOf('\Pharborist\Namespaces\NameNode', $parent);
+    $this->assertEquals('BazBase', $parent->getText());
+    return;
+    $interfaces = $class->getImplementList();
+    $this->assertCount(2, $interfaces->getItems());
+    $this->assertEquals('BazInterface', $interfaces->get(0)->getText());
+    $this->assertEquals('ExecutableInterface', $interfaces->get(1)->getText());
+  }
+
+}