From df185a0cf30d31857d361c7187845de6ffe9cef5 Mon Sep 17 00:00:00 2001
From: Antonio De Marco <antonio@nuvole.org>
Date: Sat, 22 Apr 2017 11:47:10 +0200
Subject: [PATCH] #91: Move source field manager and refactor test.

---
 .../src/Plugin/DsFieldTemplate/Pattern.php    |   6 +-
 .../FieldGroupFormatter/PatternFormatter.php  |   6 +-
 .../src/Plugin/Deriver/LibraryDeriver.php     |  11 +-
 .../src/Form/PatternDisplayTestForm.php       |   4 +-
 .../src/Plugin/views/row/Pattern.php          |   6 +-
 src/Annotation/UiPatternsSource.php           |   2 +-
 src/Form/PatternDisplayFormTrait.php          |   2 +-
 src/UiPatterns.php                            |   2 +-
 src/{Plugin => }/UiPatternsSourceManager.php  |  10 +-
 tests/src/Kernel/AbstractUiPatternsTest.php   |  47 -------
 tests/src/Kernel/UiPatternsManagerTest.php    |  34 -----
 .../Kernel/UiPatternsSourceManagerTest.php    |  45 ++++++
 tests/src/Unit/AbstractUiPatternsTest.php     | 109 --------------
 .../src/Unit/UiPatternsSourceManagerTest.php  |  36 -----
 .../fixtures/base_theme/base_theme.info.yml   |   3 -
 .../base_theme/base_theme.ui_patterns.yml     |  29 ----
 tests/src/fixtures/module/module.info.yml     |   3 -
 .../fixtures/module/module.ui_patterns.yml    |  29 ----
 .../module/src/FieldTemplateProcessor.php     | 133 ------------------
 .../src/FieldTemplateProcessorInterface.php   |  22 ---
 .../UiPatterns/Source/TestOneFieldSource.php  |  30 ----
 .../UiPatterns/Source/TestTwoFieldSource.php  |  30 ----
 .../theme/pattern/pattern.ui_patterns.yml     |  29 ----
 tests/src/fixtures/theme/theme.info.yml       |   4 -
 .../src/fixtures/theme/theme.ui_patterns.yml  |  14 --
 ui_patterns.api.php                           |   2 +-
 ui_patterns.services.yml                      |   2 +-
 27 files changed, 71 insertions(+), 579 deletions(-)
 rename src/{Plugin => }/UiPatternsSourceManager.php (82%)
 create mode 100644 tests/src/Kernel/UiPatternsSourceManagerTest.php
 delete mode 100644 tests/src/Unit/UiPatternsSourceManagerTest.php
 delete mode 100644 tests/src/fixtures/base_theme/base_theme.info.yml
 delete mode 100644 tests/src/fixtures/base_theme/base_theme.ui_patterns.yml
 delete mode 100644 tests/src/fixtures/module/module.info.yml
 delete mode 100644 tests/src/fixtures/module/module.ui_patterns.yml
 delete mode 100644 tests/src/fixtures/module/src/FieldTemplateProcessor.php
 delete mode 100644 tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php
 delete mode 100644 tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php
 delete mode 100644 tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php
 delete mode 100644 tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml
 delete mode 100644 tests/src/fixtures/theme/theme.info.yml
 delete mode 100644 tests/src/fixtures/theme/theme.ui_patterns.yml

diff --git a/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php b/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
index 23e06b8da..3a2757837 100644
--- a/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
+++ b/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_ds\Plugin\DsFieldTemplate;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\ds\Plugin\DsFieldTemplate\DsFieldTemplateBase;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
@@ -34,7 +34,7 @@ class Pattern extends DsFieldTemplateBase implements ContainerFactoryPluginInter
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -63,7 +63,7 @@ class Pattern extends DsFieldTemplateBase implements ContainerFactoryPluginInter
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *    UI Patterns source manager.
    * @param \Symfony\Component\HttpFoundation\RequestStack $parameters
    *    Current $_POST parameters.
diff --git a/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php b/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
index 828ebc35a..6bbcbc52d 100644
--- a/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
+++ b/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_field_group\Plugin\field_group\FieldGroupFormatter;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\field_group\FieldGroupFormatterBase;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -35,7 +35,7 @@ class PatternFormatter extends FieldGroupFormatterBase implements ContainerFacto
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -50,7 +50,7 @@ class PatternFormatter extends FieldGroupFormatterBase implements ContainerFacto
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *     UI Patterns source manager.
    */
   public function __construct($configuration, $plugin_id, $plugin_definition, UiPatternsManager $patterns_manager, UiPatternsSourceManager $source_manager) {
diff --git a/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php b/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
index 03736a0af..84cf2a6fc 100644
--- a/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
+++ b/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
@@ -66,6 +66,13 @@ class LibraryDeriver extends AbstractYamlDeriver {
    */
   protected $extensionLocations = [];
 
+  /**
+   * List of valid definition file extensions.
+   *
+   * @var array
+   */
+  protected $fileExtensions = [];
+
   /**
    * Constructor.
    *
@@ -85,7 +92,7 @@ class LibraryDeriver extends AbstractYamlDeriver {
   public function __construct($base_plugin_id, TypedDataManager $typed_data_manager, $root, array $extensions, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler) {
     parent::__construct($base_plugin_id, $typed_data_manager);
     $this->root = $root;
-    $this->extensions = $extensions;
+    $this->fileExtensions = $extensions;
     $this->moduleHandler = $module_handler;
     $this->themeHandler = $theme_handler;
     $this->extensionDiscovery = new ExtensionDiscovery($root);
@@ -109,7 +116,7 @@ class LibraryDeriver extends AbstractYamlDeriver {
    * {@inheritdoc}
    */
   public function getFileExtensions() {
-    return $this->extensions;
+    return $this->fileExtensions;
   }
 
   /**
diff --git a/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php b/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
index 612f7a61c..e2f094afc 100644
--- a/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
+++ b/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_test\Form;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\ui_patterns\UiPatternsManager;
 
@@ -28,7 +28,7 @@ class PatternDisplayTestForm extends FormBase {
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $patternsManager;
 
diff --git a/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php b/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
index 778fcdea0..029330844 100644
--- a/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
+++ b/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
@@ -4,7 +4,7 @@ namespace Drupal\ui_patterns_views\Plugin\views\row;
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Drupal\views\Plugin\views\field\FieldPluginBase;
 use Drupal\views\Plugin\views\row\Fields;
@@ -37,7 +37,7 @@ class Pattern extends Fields {
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -52,7 +52,7 @@ class Pattern extends Fields {
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *     UI Patterns source manager.
    */
   public function __construct(array $configuration, $plugin_id, $plugin_definition, UiPatternsManager $patterns_manager, UiPatternsSourceManager $source_manager) {
diff --git a/src/Annotation/UiPatternsSource.php b/src/Annotation/UiPatternsSource.php
index d4aae6149..cfbcb053f 100644
--- a/src/Annotation/UiPatternsSource.php
+++ b/src/Annotation/UiPatternsSource.php
@@ -7,7 +7,7 @@ use Drupal\Component\Annotation\Plugin;
 /**
  * Defines a UI Patterns Source item annotation object.
  *
- * @see \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+ * @see \Drupal\ui_patterns\UiPatternsSourceManager
  * @see plugin_api
  *
  * @Annotation
diff --git a/src/Form/PatternDisplayFormTrait.php b/src/Form/PatternDisplayFormTrait.php
index f4760f81d..0fa6aa386 100644
--- a/src/Form/PatternDisplayFormTrait.php
+++ b/src/Form/PatternDisplayFormTrait.php
@@ -9,7 +9,7 @@ use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
  * Trait PatternDisplayFormTrait.
  *
  * @property \Drupal\ui_patterns\UiPatternsManager $patternsManager
- * @property \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $sourceManager
+ * @property \Drupal\ui_patterns\UiPatternsSourceManager $sourceManager
  * @method \Drupal\Core\StringTranslation\TranslatableMarkup t($string, array $args = [], array $options = [])
  *
  * @package Drupal\ui_patterns\Form
diff --git a/src/UiPatterns.php b/src/UiPatterns.php
index 5f2323a07..501080f39 100644
--- a/src/UiPatterns.php
+++ b/src/UiPatterns.php
@@ -22,7 +22,7 @@ class UiPatterns {
   /**
    * Get pattern field sources manager instance.
    *
-   * @return \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @return \Drupal\ui_patterns\UiPatternsSourceManager
    *    UI Patterns field sources manager instance.
    */
   public static function getSourceManager() {
diff --git a/src/Plugin/UiPatternsSourceManager.php b/src/UiPatternsSourceManager.php
similarity index 82%
rename from src/Plugin/UiPatternsSourceManager.php
rename to src/UiPatternsSourceManager.php
index 1d8acf3ae..544735b25 100644
--- a/src/Plugin/UiPatternsSourceManager.php
+++ b/src/UiPatternsSourceManager.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\ui_patterns\Plugin;
+namespace Drupal\ui_patterns;
 
 use Drupal\Core\Plugin\DefaultPluginManager;
 use Drupal\Core\Cache\CacheBackendInterface;
@@ -18,14 +18,6 @@ class UiPatternsSourceManager extends DefaultPluginManager {
 
   /**
    * Constructor for UiPatternsSourceManager objects.
-   *
-   * @param \Traversable $namespaces
-   *   An object that implements \Traversable which contains the root paths
-   *   keyed by the corresponding namespace to look for plugin implementations.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
-   *   Cache backend instance to use.
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
-   *   The module handler to invoke the alter hook with.
    */
   public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
     parent::__construct('Plugin/UiPatterns/Source', $namespaces, $module_handler, 'Drupal\ui_patterns\Plugin\UiPatternsSourceInterface', 'Drupal\ui_patterns\Annotation\UiPatternsSource');
diff --git a/tests/src/Kernel/AbstractUiPatternsTest.php b/tests/src/Kernel/AbstractUiPatternsTest.php
index 3d74a6d23..de3d67b7a 100644
--- a/tests/src/Kernel/AbstractUiPatternsTest.php
+++ b/tests/src/Kernel/AbstractUiPatternsTest.php
@@ -3,10 +3,6 @@
 namespace Drupal\Tests\ui_patterns\Kernel;
 
 use Drupal\KernelTests\KernelTestBase;
-use Drupal\ui_patterns\UiPatterns;
-use Symfony\Component\Finder\Finder;
-use Drupal\Component\Serialization\Yaml;
-use Drupal\ui_patterns\UiPatternsManager;
 
 /**
  * Class AbstractUiPatternsTest.
@@ -25,49 +21,6 @@ abstract class AbstractUiPatternsTest extends KernelTestBase {
     'ui_patterns_test',
   ];
 
-  /**
-   * Get fixture definitions.
-   *
-   * @return array
-   *    List of definitions.
-   */
-  protected function getFixtureDefinitions() {
-    $definitions = [];
-    $finder = new Finder();
-    $finder->name('/\.ui_patterns\.yml$/')->in([realpath(dirname(__FILE__) . '/../fixtures')]);
-    foreach ($finder as $file) {
-      $content = Yaml::decode($file->getContents());
-      foreach ($content as $id => $definition) {
-        $definitions["yaml:$id"] = $definition;
-        $definitions["yaml:$id"]['id'] = $id;
-        $definitions["yaml:$id"]['class'] = '\Drupal\ui_patterns\Plugin\UiPatterns\Pattern\YamlPattern';
-      }
-    }
-    return $definitions;
-  }
-
-  /**
-   * Return plugin manager using given definitions.
-   *
-   * @param array $definitions
-   *    Array of plugin definitions.
-   *
-   * @return \Drupal\ui_patterns\UiPatternsManager
-   *    Plugin manager object.
-   */
-  protected function getPluginManager(array $definitions) {
-    $manager = UiPatterns::getManager();
-    $manager_mock = $this->getMockBuilder(UiPatternsManager::class)
-      ->disableOriginalConstructor()
-      ->setMethods(['findDefinitions'])
-      ->setProxyTarget($manager)
-      ->getMock();
-    $manager_mock->method('findDefinitions')->willReturn($definitions);
-
-    /** @var \Drupal\ui_patterns\UiPatternsManager $manager_mock */
-    return $manager_mock;
-  }
-
   /**
    * Get fixtures base path.
    *
diff --git a/tests/src/Kernel/UiPatternsManagerTest.php b/tests/src/Kernel/UiPatternsManagerTest.php
index 923ac7590..fab7d321e 100644
--- a/tests/src/Kernel/UiPatternsManagerTest.php
+++ b/tests/src/Kernel/UiPatternsManagerTest.php
@@ -3,9 +3,6 @@
 namespace Drupal\Tests\ui_patterns\Kernel;
 
 use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isNotEmpty;
-use function bovigo\assert\predicate\doesNotHaveKey;
-use function bovigo\assert\predicate\hasKey;
 use function bovigo\assert\predicate\equals;
 use Drupal\ui_patterns\UiPatterns;
 
@@ -16,37 +13,6 @@ use Drupal\ui_patterns\UiPatterns;
  */
 class UiPatternsManagerTest extends AbstractUiPatternsTest {
 
-  /**
-   * Test UiPatternsManager::getDefinitions.
-   *
-   * @covers ::getDefinitions
-   */
-  public function testGetDefinitions() {
-    $manager = $this->getPluginManager($this->getFixtureDefinitions());
-    $definitions = $manager->getDefinitions();
-    assert($definitions, isNotEmpty());
-
-    foreach ($this->getFixtureDefinitions() as $fixture_id => $fixture) {
-      assert($definitions, doesNotHaveKey($fixture_id));
-      assert($definitions, hasKey($fixture['id']));
-    }
-  }
-
-  /**
-   * Test UiPatternsManager::getPatternsOptions.
-   *
-   * @covers ::getPatternsOptions
-   */
-  public function testGetPatternsOptions() {
-    $manager = $this->getPluginManager($this->getFixtureDefinitions());
-    $options = $manager->getPatternsOptions();
-
-    foreach ($this->getFixtureDefinitions() as $fixture) {
-      assert($options, hasKey($fixture['id']));
-      assert($options[$fixture['id']], equals($fixture['label']));
-    }
-  }
-
   /**
    * Test UiPatternsManager::getPattern.
    *
diff --git a/tests/src/Kernel/UiPatternsSourceManagerTest.php b/tests/src/Kernel/UiPatternsSourceManagerTest.php
new file mode 100644
index 000000000..8e7108a3b
--- /dev/null
+++ b/tests/src/Kernel/UiPatternsSourceManagerTest.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Drupal\Tests\ui_patterns\Kernel;
+
+use function bovigo\assert\assert;
+use function bovigo\assert\predicate\isNotEmpty;
+use function bovigo\assert\predicate\hasKey;
+use function bovigo\assert\predicate\equals;
+
+/**
+ * @coversDefaultClass \Drupal\ui_patterns\UiPatternsSourceManager
+ *
+ * @group ui_patterns
+ */
+class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
+
+  /**
+   * Test processDefinition.
+   *
+   * @covers ::processDefinition
+   */
+  public function testProcessDefinition() {
+    /** @var \Drupal\ui_patterns\UiPatternsSourceManager $service */
+    $plugin_manager = \Drupal::service('plugin.manager.ui_patterns_source');
+
+    $definitions = $plugin_manager->getDefinitions();
+    assert($definitions, isNotEmpty()->and(hasKey('test_source')));
+
+    $expected = [
+      ['name' => 'field_1', 'label' => 'Field 1'],
+      ['name' => 'field_2', 'label' => 'Field 2'],
+      ['name' => 'field_3', 'label' => 'Field 3'],
+      ['name' => 'field_4', 'label' => 'Field 4'],
+      ['name' => 'field_5', 'label' => 'Field 5'],
+    ];
+
+    /** @var \Drupal\ui_patterns\Plugin\UiPatternsSourceBase $plugin */
+    $plugin = $plugin_manager->createInstance('test_source');
+    foreach ($plugin->getSourceFields() as $key => $field) {
+      assert($field->getFieldName(), equals($expected[$key]['name']));
+      assert($field->getFieldLabel(), equals($expected[$key]['label']));
+    }
+  }
+
+}
diff --git a/tests/src/Unit/AbstractUiPatternsTest.php b/tests/src/Unit/AbstractUiPatternsTest.php
index 1f84b5bb1..209bddd21 100644
--- a/tests/src/Unit/AbstractUiPatternsTest.php
+++ b/tests/src/Unit/AbstractUiPatternsTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Unit;
 
-use Drupal\Component\FileCache\FileCacheFactory;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -12,114 +11,6 @@ use Drupal\Tests\UnitTestCase;
  */
 abstract class AbstractUiPatternsTest extends UnitTestCase {
 
-  /**
-   * Get full test extension path.
-   *
-   * @param string $name
-   *    Test extension name.
-   *
-   * @return string
-   *    Full test extension path.
-   */
-  protected function getExtensionsPath($name) {
-    return realpath(dirname(__FILE__) . '/../fixtures/' . $name . '/');
-  }
-
-  /**
-   * Get ModuleHandler mock.
-   *
-   * @return \Drupal\Core\Extension\ModuleHandlerInterface
-   *    ModuleHandler mock.
-   */
-  protected function getModuleHandlerMock() {
-    $module_handler = $this->createMock('Drupal\Core\Extension\ModuleHandlerInterface');
-    $module_handler->method('getModuleDirectories')->willReturn($this->getModuleDirectoriesMock());
-
-    $extension = $this->getExtensionMock();
-    $module_handler->method('getModule')->willReturn($extension);
-    $module_handler->method('moduleExists')->willReturn(TRUE);
-
-    /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
-    return $module_handler;
-  }
-
-  /**
-   * Get Extension mock.
-   *
-   * @return \Drupal\Core\Extension\Extension
-   *    Extension mock.
-   */
-  protected function getExtensionMock() {
-    $extension = $this->getMockBuilder('Drupal\Core\Extension\Extension')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $extension->method('getPath')->willReturn($this->getExtensionsPath('module'));
-
-    /** @var \Drupal\Core\Extension\Extension $extension */
-    return $extension;
-  }
-
-  /**
-   * Get CacheBackend mock.
-   *
-   * @return \Drupal\Core\Cache\CacheBackendInterface
-   *    CacheBackend mock.
-   */
-  protected function getCacheBackendMock() {
-    FileCacheFactory::setPrefix('something');
-    $cache_backend = $this->createMock('Drupal\Core\Cache\CacheBackendInterface');
-
-    /** @var \Drupal\Core\Cache\CacheBackendInterface $cache_backend */
-    return $cache_backend;
-  }
-
-  /**
-   * Get ThemeHandler mock.
-   *
-   * @return \Drupal\Core\Extension\ThemeHandlerInterface
-   *    ThemeHandler mock.
-   */
-  protected function getThemeHandlerMock() {
-    $theme_handler = $this->getMockBuilder('Drupal\Core\Extension\ThemeHandlerInterface')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $theme_handler->method('getThemeDirectories')->willReturn($this->getDefaultAndBaseThemesDirectoriesMock());
-    $theme_handler->method('themeExists')->willReturn(TRUE);
-    $theme_handler->method('getDefault')->willReturn('theme');
-    $theme_handler->method('listInfo')->willReturn([]);
-    $theme_handler->method('getBaseThemes')->willReturn([
-      'base_theme' => new \stdClass(),
-    ]);
-
-    /** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */
-    return $theme_handler;
-  }
-
-  /**
-   * ModuleHandlerInterface::getModuleDirectories method mock.
-   *
-   * @return array
-   *   Array with module names as keys and full paths as values.
-   */
-  protected function getModuleDirectoriesMock() {
-    return [
-      'module' => $this->getExtensionsPath('module'),
-    ];
-  }
-
-  /**
-   * UiPatternsDiscovery::getDefaultAndBaseThemesDirectories method mock.
-   *
-   * @return array
-   *   Array with theme names as keys and full paths as values.
-   */
-  protected function getDefaultAndBaseThemesDirectoriesMock() {
-    return [
-      'theme' => $this->getExtensionsPath('theme'),
-      'base_theme' => $this->getExtensionsPath('base_theme'),
-    ];
-  }
-
   /**
    * Get fixtures base path.
    *
diff --git a/tests/src/Unit/UiPatternsSourceManagerTest.php b/tests/src/Unit/UiPatternsSourceManagerTest.php
deleted file mode 100644
index a668c3e4e..000000000
--- a/tests/src/Unit/UiPatternsSourceManagerTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ui_patterns\Unit;
-
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isNotEmpty;
-use function bovigo\assert\predicate\hasKey;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
-
-/**
- * @coversDefaultClass \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
- *
- * @group ui_patterns
- */
-class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
-
-  /**
-   * Test processDefinition.
-   *
-   * @covers ::processDefinition
-   */
-  public function testProcessDefinition() {
-    $cache_backend = $this->getCacheBackendMock();
-    $module_handler = $this->getModuleHandlerMock();
-    $path = $this->getExtensionsPath('module') . '/src';
-    $traversable = new \ArrayObject(['Drupal\\module' => $path]);
-    $plugin_manager = new UiPatternsSourceManager($traversable, $cache_backend, $module_handler);
-
-    $definitions = $plugin_manager->getDefinitions();
-    assert($definitions, isNotEmpty()
-      ->and(hasKey('test_one'))
-      ->and(hasKey('test_two'))
-    );
-  }
-
-}
diff --git a/tests/src/fixtures/base_theme/base_theme.info.yml b/tests/src/fixtures/base_theme/base_theme.info.yml
deleted file mode 100644
index 95095cb5c..000000000
--- a/tests/src/fixtures/base_theme/base_theme.info.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: Base theme
-type: theme
-core: 8.x
diff --git a/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml b/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml
deleted file mode 100644
index 48b91d835..000000000
--- a/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_base_theme_one:
-  label: Pattern base theme one
-  description: Pattern base theme one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-
-pattern_base_theme_two:
-  label: Pattern base theme two
-  description: Pattern base theme two description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/tests/src/fixtures/module/module.info.yml b/tests/src/fixtures/module/module.info.yml
deleted file mode 100644
index 007b569c9..000000000
--- a/tests/src/fixtures/module/module.info.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: Module
-type: module
-core: 8.x
diff --git a/tests/src/fixtures/module/module.ui_patterns.yml b/tests/src/fixtures/module/module.ui_patterns.yml
deleted file mode 100644
index 467ad8995..000000000
--- a/tests/src/fixtures/module/module.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_module_one:
-  label: Pattern module one
-  description: Pattern module one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-
-pattern_module_two:
-  label: Pattern module two
-  description: Pattern module two description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/tests/src/fixtures/module/src/FieldTemplateProcessor.php b/tests/src/fixtures/module/src/FieldTemplateProcessor.php
deleted file mode 100644
index 2cf64570e..000000000
--- a/tests/src/fixtures/module/src/FieldTemplateProcessor.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-
-namespace Drupal\ui_patterns_ds;
-
-/**
- * Class FieldTemplateProcessor.
- *
- * @package Drupal\ui_patterns_ds
- */
-class FieldTemplateProcessor implements FieldTemplateProcessorInterface {
-
-  /**
-   * Variables array.
-   *
-   * @var array
-   */
-  protected $variables = [];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function process(&$variables) {
-    $this->variables = $variables;
-
-    $content = [];
-    foreach ($variables['items'] as $delta => $item) {
-      $fields = [];
-      foreach ($this->getMapping() as $mapping) {
-        $fields[$mapping['destination']] = $this->getSourceValue($mapping, $delta);
-      }
-
-      $content['pattern_' . $delta] = [
-        '#type' => 'pattern',
-        '#id' => $this->getPatternId(),
-        '#fields' => $fields,
-        '#context' => $this->getContext(),
-      ];
-    }
-
-    $variables['pattern'] = $content;
-  }
-
-  /**
-   * Get source value.
-   *
-   * @param array $mapping
-   *    Mapping array.
-   * @param int $delta
-   *    Field delta.
-   *
-   * @return mixed
-   *    Source value.
-   */
-  public function getSourceValue(array $mapping, $delta) {
-    $value = $this->variables['items'][$delta]['content'];
-    if ($mapping['source'] != $this->getFieldName()) {
-      $column = $this->getColumnName($mapping['source']);
-      $value = $this->getEntity()->get($this->getFieldName())->getValue();
-      $value = $value[$delta][$column];
-    }
-    return $value;
-  }
-
-  /**
-   * Get field parent entity.
-   *
-   * @return \Drupal\Core\Entity\ContentEntityBase
-   *    Parent entity.
-   */
-  protected function getEntity() {
-    return $this->variables['element']['#object'];
-  }
-
-  /**
-   * Get Pattern ID.
-   *
-   * @return string
-   *    Pattern ID.
-   */
-  protected function getPatternId() {
-    return $this->variables['ds-config']['settings']['pattern'];
-  }
-
-  /**
-   * Get mapping settings.
-   *
-   * @return mixed
-   *    Mapping settings.
-   */
-  protected function getMapping() {
-    return $this->variables['ds-config']['settings']['pattern_mapping'];
-  }
-
-  /**
-   * Get field name.
-   *
-   * @return string
-   *    Field name.
-   */
-  protected function getFieldName() {
-    return $this->variables['field_name'];
-  }
-
-  /**
-   * Extract column name from a source name.
-   *
-   * @param string $source
-   *    Source name.
-   *
-   * @return string
-   *    Column name.
-   */
-  protected function getColumnName($source) {
-    return str_replace($this->getFieldName() . '__', '', $source);
-  }
-
-  /**
-   * Get pattern context.
-   *
-   * @return array
-   *    Pattern context.
-   */
-  protected function getContext() {
-    return [
-      'type' => 'ds_field_template',
-      'field_name' => $this->getFieldName(),
-      'entity_type' => $this->variables['element']['#entity_type'],
-      'bundle' => $this->variables['element']['#bundle'],
-      'view_mode' => $this->variables['element']['#view_mode'],
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php b/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php
deleted file mode 100644
index 6bc67a4fb..000000000
--- a/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Drupal\ui_patterns_ds;
-
-/**
- * Interface FieldTemplateProcessorInterface.
- *
- * @package Drupal\ui_patterns_ds
- */
-interface FieldTemplateProcessorInterface {
-
-  /**
-   * Process field template variables.
-   *
-   * @param array $variables
-   *    Variables array.
-   *
-   * @see template_preprocess_field__pattern_ds_field_template()
-   */
-  public function process(&$variables);
-
-}
diff --git a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php b/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php
deleted file mode 100644
index 2d783cfa9..000000000
--- a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Drupal\module\Plugin\UiPatterns\Source;
-
-use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
-
-/**
- * Test one.
- *
- * @UiPatternsSource(
- *   id = "test_one",
- *   label = @Translation("Test one"),
- *   provider = "module",
- *   tags = {
- *     "test"
- *   }
- * )
- */
-class TestOneFieldSource extends UiPatternsSourceBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSourceFields() {
-    return [
-      $this->getSourceField('test_one', 'Test one'),
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php b/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php
deleted file mode 100644
index c9743d008..000000000
--- a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Drupal\module\Plugin\UiPatterns\Source;
-
-use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
-
-/**
- * Test two.
- *
- * @UiPatternsSource(
- *   id = "test_two",
- *   label = @Translation("Test two"),
- *   provider = "module",
- *   tags = {
- *     "test"
- *   }
- * )
- */
-class TestTwoFieldSource extends UiPatternsSourceBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSourceFields() {
-    return [
-      $this->getSourceField('test_two', 'Test two'),
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml b/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml
deleted file mode 100644
index 40298c932..000000000
--- a/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_pattern_one:
-  label: Pattern pattern one
-  description: Pattern pattern one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-  libraries:
-    - theme/library_one
-    - theme/library_two
-    - library_one:
-        css:
-           component:
-             library_one.css: {}
-        js:
-         library_one.js: {}
-    - library_two:
-        css:
-           component:
-             library_one.css: {}
-        js:
-         library_two.js: {}
diff --git a/tests/src/fixtures/theme/theme.info.yml b/tests/src/fixtures/theme/theme.info.yml
deleted file mode 100644
index d6b1e40a7..000000000
--- a/tests/src/fixtures/theme/theme.info.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: Theme
-type: theme
-base theme: base_theme
-core: 8.x
diff --git a/tests/src/fixtures/theme/theme.ui_patterns.yml b/tests/src/fixtures/theme/theme.ui_patterns.yml
deleted file mode 100644
index ad5c7ebb9..000000000
--- a/tests/src/fixtures/theme/theme.ui_patterns.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-pattern_theme_one:
-  label: Pattern theme one
-  description: Pattern theme one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/ui_patterns.api.php b/ui_patterns.api.php
index 96504c317..e56ba0f47 100644
--- a/ui_patterns.api.php
+++ b/ui_patterns.api.php
@@ -14,7 +14,7 @@ function hook_ui_patterns_info_alter(&$definitions) {
 /**
  * Alter UI Patterns Source definitions.
  *
- * @see \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+ * @see \Drupal\ui_patterns\UiPatternsSourceManager
  */
 function hook_ui_patterns_ui_patterns_source_info_alter(&$definitions) {
   $definitions['my_field_source']['tags'][] = 'new_tag';
diff --git a/ui_patterns.services.yml b/ui_patterns.services.yml
index eee75f4cd..cb420c61c 100644
--- a/ui_patterns.services.yml
+++ b/ui_patterns.services.yml
@@ -3,7 +3,7 @@ services:
     class: Drupal\ui_patterns\UiPatternsManager
     arguments: ['@container.namespaces', '@module_handler', '@theme_handler', '@cache.discovery']
   plugin.manager.ui_patterns_source:
-    class: Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+    class: Drupal\ui_patterns\UiPatternsSourceManager
     parent: default_plugin_manager
   ui_patterns.twig.extension:
     class: Drupal\ui_patterns\Template\TwigExtension
-- 
GitLab