diff --git a/modules/payment_form/src/Entity/Payment/PaymentForm.php b/modules/payment_form/src/Entity/Payment/PaymentForm.php
index 411305a..0ba0dad 100644
--- a/modules/payment_form/src/Entity/Payment/PaymentForm.php
+++ b/modules/payment_form/src/Entity/Payment/PaymentForm.php
@@ -13,8 +13,9 @@ use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\StringTranslation\TranslationInterface;
-use Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager;
+use Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager;
 use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorManagerInterface;
+use Drupal\plugin\PluginDiscovery\LimitedPluginDiscoveryDecorator;
 use Drupal\plugin\PluginTypeInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -121,7 +122,7 @@ class PaymentForm extends ContentEntityForm {
       'submit' => $actions['submit'],
     ];
     $actions['submit']['#value'] = $this->t('Pay');
-    $payment_method_manager = new FilteredPaymentMethodManager($this->paymentMethodType->getPluginManager(), $this->getEntity(), $this->currentUser);
+    $payment_method_manager = new PaymentExecutionPaymentMethodManager($this->getEntity(), $this->currentUser, $this->paymentMethodType->getPluginManager());
     $actions['submit']['#disabled'] = count($payment_method_manager->getDefinitions()) == 0;
 
     return $actions;
@@ -153,10 +154,11 @@ class PaymentForm extends ContentEntityForm {
       $limit_allowed_plugins = $config->get('limit_allowed_plugins');
       $allowed_plugin_ids = $config->get('allowed_plugin_ids');
       $plugin_selector = $this->pluginSelectorManager->createInstance($plugin_selector_id);
-      $payment_method_manager = new FilteredPaymentMethodManager($this->paymentMethodType->getPluginManager(), $this->getEntity(), $this->currentUser);
+      $payment_method_discovery = new LimitedPluginDiscoveryDecorator($this->paymentMethodType->getPluginManager());
       if ($limit_allowed_plugins) {
-        $payment_method_manager->setPluginIdFilter($allowed_plugin_ids);
+        $payment_method_discovery->setDiscoveryLimit($allowed_plugin_ids);
       }
+      $payment_method_manager = new PaymentExecutionPaymentMethodManager($this->getEntity(), $this->currentUser, $this->paymentMethodType->getPluginManager(), $payment_method_discovery);
       $plugin_selector->setSelectablePluginType($this->paymentMethodType, $payment_method_manager);
       $plugin_selector->setRequired();
       $plugin_selector->setLabel($this->t('Payment method'));
diff --git a/modules/payment_form/tests/src/Unit/Entity/Payment/PaymentFormTest.php b/modules/payment_form/tests/src/Unit/Entity/Payment/PaymentFormTest.php
index 884d338..52c2991 100644
--- a/modules/payment_form/tests/src/Unit/Entity/Payment/PaymentFormTest.php
+++ b/modules/payment_form/tests/src/Unit/Entity/Payment/PaymentFormTest.php
@@ -26,6 +26,7 @@ use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorInterface;
 use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorManagerInterface;
 use Drupal\plugin\PluginType;
 use Drupal\plugin\PluginTypeManagerInterface;
+use Drupal\Tests\payment\Unit\PHPUnitStubMap;
 use Drupal\Tests\UnitTestCase;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -329,10 +330,10 @@ class PaymentFormTest extends UnitTestCase {
       ->willReturn(AccessResult::forbidden());
 
     $plugin_definitions = [
-      [
+      $plugin_id_a => [
         'id' => $plugin_id_a,
       ],
-      [
+      $plugin_id_b => [
         'id' => $plugin_id_b,
       ],
     ];
diff --git a/src/Element/PaymentReferenceBase.php b/src/Element/PaymentReferenceBase.php
index 66031e0..c147f8f 100644
--- a/src/Element/PaymentReferenceBase.php
+++ b/src/Element/PaymentReferenceBase.php
@@ -28,8 +28,9 @@ use Drupal\Core\Utility\LinkGeneratorInterface;
 use Drupal\currency\FormElementCallbackTrait;
 use Drupal\payment\Entity\Payment;
 use Drupal\payment\Entity\PaymentInterface;
-use Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager;
+use Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager;
 use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorManagerInterface;
+use Drupal\plugin\PluginDiscovery\LimitedPluginDiscoveryDecorator;
 use Drupal\plugin\PluginTypeInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
 
@@ -540,12 +541,13 @@ abstract class PaymentReferenceBase extends FormElement implements FormElementIn
     $key = 'payment_reference.element.payment_reference.plugin_selector.' . $element['#name'];
     if (!$form_state->has($key)) {
       $plugin_selector = $this->pluginSelectorManager->createInstance($element['#plugin_selector_id']);
-      $payment_method_manager = new FilteredPaymentMethodManager($this->paymentMethodType->getPluginManager(), $this->getPayment($element, $form_state), $this->currentUser);
-      $plugin_selector->setSelectablePluginType($this->paymentMethodType, $payment_method_manager);
-      $plugin_selector->setRequired($element['#required']);
+      $payment_method_discovery = $this->paymentMethodType->getPluginManager();
       if (!is_null($element['#limit_allowed_plugin_ids'])) {
-        $payment_method_manager->setPluginIdFilter($element['#limit_allowed_plugin_ids']);
+        $payment_method_discovery = (new LimitedPluginDiscoveryDecorator($payment_method_discovery))->setDiscoveryLimit($element['#limit_allowed_plugin_ids']);
       }
+      $payment_method_manager = new PaymentExecutionPaymentMethodManager($this->getPayment($element, $form_state), $this->currentUser, $this->paymentMethodType->getPluginManager(), $payment_method_discovery);
+      $plugin_selector->setSelectablePluginType($this->paymentMethodType, $payment_method_manager);
+      $plugin_selector->setRequired($element['#required']);
 
       $form_state->set($key, $plugin_selector);
     }
diff --git a/src/Entity/Payment/PaymentStatusForm.php b/src/Entity/Payment/PaymentStatusForm.php
index 541148d..ebf8e2a 100644
--- a/src/Entity/Payment/PaymentStatusForm.php
+++ b/src/Entity/Payment/PaymentStatusForm.php
@@ -13,9 +13,9 @@ use Drupal\Core\Routing\UrlGeneratorInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\StringTranslation\TranslationInterface;
 use Drupal\payment\Plugin\Payment\Method\PaymentMethodUpdatePaymentStatusInterface;
-use Drupal\payment\Plugin\Payment\PaymentAwarePluginFilteredPluginManager;
-use Drupal\plugin\Plugin\DefaultPluginDefinitionMapper;
+use Drupal\payment\Plugin\Payment\PaymentAwarePluginManagerDecorator;
 use Drupal\plugin\Plugin\Plugin\PluginSelector\PluginSelectorManagerInterface;
+use Drupal\plugin\PluginDiscovery\LimitedPluginDiscoveryDecorator;
 use Drupal\plugin\PluginTypeManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -123,12 +123,12 @@ class PaymentStatusForm extends EntityForm {
 
       $plugin_type = $this->pluginTypeManager->getPluginType('payment_method');
 
-      $mapper = new DefaultPluginDefinitionMapper();
-      $payment_status_manager = new PaymentAwarePluginFilteredPluginManager($plugin_type->getPluginManager(), $mapper, $payment);
       $payment_method = $payment->getPaymentMethod();
+      $payment_status_discovery = new LimitedPluginDiscoveryDecorator($plugin_type->getPluginManager());
       if ($payment_method instanceof PaymentMethodUpdatePaymentStatusInterface) {
-        $payment_status_manager->setPluginIdFilter($payment_method->getSettablePaymentStatuses($this->currentUser, $payment));
+        $payment_status_discovery->setDiscoveryLimit($payment_method->getSettablePaymentStatuses($this->currentUser, $payment));
       }
+      $payment_status_manager = new PaymentAwarePluginManagerDecorator($payment, $plugin_type->getPluginManager(), $payment_status_discovery);
 
       $plugin_selector = $this->pluginSelectorManager->createInstance('payment_select_list');
       $plugin_selector->setSelectablePluginType($plugin_type, $payment_status_manager);
diff --git a/src/Plugin/Payment/Method/FilteredPaymentMethodManager.php b/src/Plugin/Payment/Method/FilteredPaymentMethodManager.php
deleted file mode 100644
index d84c4dd..0000000
--- a/src/Plugin/Payment/Method/FilteredPaymentMethodManager.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/**
- * Contains \Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager.
- */
-
-namespace Drupal\payment\Plugin\Payment\Method;
-
-use Drupal\Component\Plugin\Exception\PluginNotFoundException;
-use Drupal\Core\Session\AccountInterface;
-use Drupal\payment\Entity\PaymentInterface;
-use Drupal\payment\Plugin\Payment\PaymentAwarePluginFilteredPluginManager;
-use Drupal\plugin\Plugin\DefaultPluginDefinitionMapper;
-
-/**
- * Provides a filtered payment method plugin manager.
- *
- * @see \Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface
- */
-class FilteredPaymentMethodManager extends PaymentAwarePluginFilteredPluginManager implements PaymentMethodManagerInterface {
-
-  /**
-   * The account.
-   *
-   * @var \Drupal\Core\Session\AccountInterface
-   */
-  protected $account;
-
-  /**
-   * Creates a new instance.
-   *
-   * @param \Drupal\payment\Plugin\Payment\Method\PaymentMethodManagerInterface $payment_method_manager
-   * @param \Drupal\payment\Entity\PaymentInterface
-   * @param \Drupal\Core\Session\AccountInterface $account
-   */
-  public function __construct(PaymentMethodManagerInterface $payment_method_manager, PaymentInterface $payment, AccountInterface $account) {
-    parent::__construct($payment_method_manager, new DefaultPluginDefinitionMapper(), $payment);
-    $this->account = $account;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function filterDefinition(array $plugin_definition) {
-    if (!parent::filterDefinition($plugin_definition)) {
-      return FALSE;
-    }
-
-    /** @var \Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface $payment_method */
-    $payment_method = $this->createInstance($this->pluginDefinitionMapper->getPluginId($plugin_definition));
-
-    return $payment_method->executePaymentAccess($this->account)->isAllowed();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getOperationsProvider($plugin_id) {
-    if ($this->hasDefinition($plugin_id)) {
-      /** @var \Drupal\payment\Plugin\Payment\Method\PaymentMethodManagerInterface $payment_method_manager */
-      $payment_method_manager = $this->pluginManager;
-      return $payment_method_manager->getOperationsProvider($plugin_id);
-    }
-    else {
-      throw new PluginNotFoundException($plugin_id);
-    }
-  }
-
-}
diff --git a/src/Plugin/Payment/Method/PaymentExecutionPaymentMethodManager.php b/src/Plugin/Payment/Method/PaymentExecutionPaymentMethodManager.php
new file mode 100644
index 0000000..fabc7b6
--- /dev/null
+++ b/src/Plugin/Payment/Method/PaymentExecutionPaymentMethodManager.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * Contains \Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager.
+ */
+
+namespace Drupal\payment\Plugin\Payment\Method;
+
+use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
+use Drupal\Component\Plugin\Exception\PluginNotFoundException;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\payment\Entity\PaymentInterface;
+use Drupal\payment\Plugin\Payment\PaymentAwarePluginManagerDecorator;
+
+/**
+ * Provides a payment method manager for executing a payment.
+ *
+ * @see \Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface
+ */
+class PaymentExecutionPaymentMethodManager extends PaymentAwarePluginManagerDecorator implements PaymentMethodManagerInterface {
+
+  /**
+   * The account for which to check execution access.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $account;
+
+  /**
+   * The decorated payment method manager.
+   *
+   * @var \Drupal\payment\Plugin\Payment\Method\PaymentMethodManagerInterface
+   */
+  protected $decoratedPaymentMethodManager;
+
+  /**
+   * Creates a new instance.
+   *
+   * @param \Drupal\payment\Entity\PaymentInterface
+   *   The payment to check execution access for.
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   The account to check payment execution access for.
+   * @param \Drupal\payment\Plugin\Payment\Method\PaymentMethodManagerInterface $payment_method_manager
+   *   The payment method manager.
+   * @param \Drupal\Component\Plugin\Discovery\DiscoveryInterface|null $discovery
+   *   A plugin discovery to use instead of the decorated plugin manager, or
+   *   NULL to use the decorated plugin manager.
+   */
+  public function __construct(PaymentInterface $payment, AccountInterface $account, PaymentMethodManagerInterface $payment_method_manager, DiscoveryInterface $discovery = NULL) {
+    parent::__construct($payment, $payment_method_manager, $discovery);
+    $this->account = $account;
+    $this->decoratedPaymentMethodManager = $payment_method_manager;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function processDecoratedDefinitions(array $decorated_definitions) {
+    $processed_definitions = [];
+    foreach ($decorated_definitions as $plugin_id => $decorated_definition) {
+      /** @var \Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface $payment_method */
+      $payment_method = $this->createInstance($plugin_id);
+
+      if ($payment_method->executePaymentAccess($this->account)->isAllowed()) {
+        $processed_definitions[$plugin_id] = $decorated_definition;
+      }
+    }
+
+    return $processed_definitions;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getOperationsProvider($plugin_id) {
+    if ($this->hasDefinition($plugin_id)) {
+      return $this->decoratedPaymentMethodManager->getOperationsProvider($plugin_id);
+    }
+    else {
+      throw new PluginNotFoundException($plugin_id);
+    }
+  }
+
+}
diff --git a/src/Plugin/Payment/PaymentAwarePluginFilteredPluginManager.php b/src/Plugin/Payment/PaymentAwarePluginFilteredPluginManager.php
deleted file mode 100644
index c6414e7..0000000
--- a/src/Plugin/Payment/PaymentAwarePluginFilteredPluginManager.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/**
- * Contains \Drupal\payment\Plugin\Payment\PaymentAwarePluginFilteredPluginManager.
- */
-
-namespace Drupal\payment\Plugin\Payment;
-
-use Drupal\Component\Plugin\PluginManagerInterface;
-use Drupal\payment\Entity\PaymentInterface;
-use Drupal\payment\PaymentAwareInterface;
-use Drupal\plugin\Plugin\FilteredPluginManager;
-use Drupal\plugin\Plugin\PluginDefinitionMapperInterface;
-
-/**
- * Provides a filtered plugin manager for payment-aware plugins.
- */
-class PaymentAwarePluginFilteredPluginManager extends FilteredPluginManager {
-
-  /**
-   * The payment to filter methods by.
-   *
-   * @var \Drupal\payment\Entity\PaymentInterface
-   */
-  protected $payment;
-
-  /**
-   * Creates a new instance.
-   *
-   * @param \Drupal\Component\Plugin\PluginManagerInterface $plugin_manager
-   *   Another plugin manager that the filters are applied to.
-   * @param \Drupal\plugin\Plugin\PluginDefinitionMapperInterface $plugin_definition_mapper
-   * @param \Drupal\payment\Entity\PaymentInterface $payment
-   */
-  public function __construct(PluginManagerInterface $plugin_manager, PluginDefinitionMapperInterface $plugin_definition_mapper, PaymentInterface $payment) {
-    parent::__construct($plugin_manager, $plugin_definition_mapper);
-    $this->payment = $payment;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function createInstance($plugin_id, array $configuration = []) {
-    $plugin = $this->pluginManager->createInstance($plugin_id, $configuration);
-    if ($plugin instanceof PaymentAwareInterface) {
-      $plugin->setPayment($this->payment);
-    }
-
-    return $plugin;
-  }
-
-}
diff --git a/src/Plugin/Payment/PaymentAwarePluginManagerDecorator.php b/src/Plugin/Payment/PaymentAwarePluginManagerDecorator.php
new file mode 100644
index 0000000..68d4e56
--- /dev/null
+++ b/src/Plugin/Payment/PaymentAwarePluginManagerDecorator.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * Contains \Drupal\payment\Plugin\Payment\PaymentAwarePluginManagerDecorator.
+ */
+
+namespace Drupal\payment\Plugin\Payment;
+
+use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
+use Drupal\Component\Plugin\PluginManagerInterface;
+use Drupal\payment\Entity\PaymentInterface;
+use Drupal\payment\PaymentAwareInterface;
+use Drupal\plugin\PluginManager\PluginManagerDecorator;
+
+/**
+ * Provides a payment-aware plugin manager decorator.
+ */
+class PaymentAwarePluginManagerDecorator extends PluginManagerDecorator {
+
+  /**
+   * The payment to inject into plugin instances.
+   *
+   * @var \Drupal\payment\Entity\PaymentInterface
+   */
+  protected $payment;
+
+  /**
+   * Creates a new instance.
+   *
+   * @param \Drupal\payment\Entity\PaymentInterface $payment
+   *   The payment to inject into payment-aware plugin instances.
+   * @param \Drupal\Component\Plugin\PluginManagerInterface $plugin_manager
+   *   The decorated plugin manager.
+   * @param \Drupal\Component\Plugin\Discovery\DiscoveryInterface|null $discovery
+   *   A plugin discovery to use instead of the decorated plugin manager, or
+   *   NULL to use the decorated plugin manager.
+   */
+  public function __construct(PaymentInterface $payment, PluginManagerInterface $plugin_manager, DiscoveryInterface $discovery = NULL) {
+    parent::__construct($plugin_manager, $discovery);
+    $this->payment = $payment;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function createInstance($plugin_id, array $configuration = []) {
+    $plugin = $this->decoratedFactory->createInstance($plugin_id, $configuration);
+    if ($plugin instanceof PaymentAwareInterface) {
+      $plugin->setPayment($this->payment);
+    }
+
+    return $plugin;
+  }
+
+}
diff --git a/tests/src/Unit/Plugin/Payment/Method/FilteredPaymentMethodManagerTest.php b/tests/src/Unit/Plugin/Payment/Method/PaymentExecutionPaymentMethodManagerTest.php
similarity index 85%
rename from tests/src/Unit/Plugin/Payment/Method/FilteredPaymentMethodManagerTest.php
rename to tests/src/Unit/Plugin/Payment/Method/PaymentExecutionPaymentMethodManagerTest.php
index 07d927d..bb8c7a5 100644
--- a/tests/src/Unit/Plugin/Payment/Method/FilteredPaymentMethodManagerTest.php
+++ b/tests/src/Unit/Plugin/Payment/Method/PaymentExecutionPaymentMethodManagerTest.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Tests\payment\Unit\Plugin\Payment\Method\FilteredPaymentMethodManagerTest.
+ * Contains \Drupal\Tests\payment\Unit\Plugin\Payment\Method\PaymentExecutionPaymentMethodManagerTest.
  */
 
 namespace Drupal\Tests\payment\Unit\Plugin\Payment\Method;
@@ -10,18 +10,18 @@ namespace Drupal\Tests\payment\Unit\Plugin\Payment\Method;
 use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\payment\Entity\PaymentInterface;
-use Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager;
+use Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager;
 use Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface;
 use Drupal\payment\Plugin\Payment\Method\PaymentMethodManagerInterface;
 use Drupal\plugin\PluginOperationsProviderInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
- * @coversDefaultClass \Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager
+ * @coversDefaultClass \Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager
  *
  * @group Payment
  */
-class FilteredPaymentMethodManagerTest extends UnitTestCase {
+class PaymentExecutionPaymentMethodManagerTest extends UnitTestCase {
 
   /**
    * The account.
@@ -47,7 +47,7 @@ class FilteredPaymentMethodManagerTest extends UnitTestCase {
   /**
    * The class under test.
    *
-   * @var \Drupal\payment\Plugin\Payment\Method\FilteredPaymentMethodManager
+   * @var \Drupal\payment\Plugin\Payment\Method\PaymentExecutionPaymentMethodManager
    */
   protected $sut;
 
@@ -61,20 +61,20 @@ class FilteredPaymentMethodManagerTest extends UnitTestCase {
 
     $this->paymentMethodManager = $this->getMock(PaymentMethodManagerInterface::class);
 
-    $this->sut = new FilteredPaymentMethodManager($this->paymentMethodManager, $this->payment, $this->account);
+    $this->sut = new PaymentExecutionPaymentMethodManager($this->payment, $this->account, $this->paymentMethodManager);
   }
 
   /**
    * @covers ::__construct
    */
   public function testConstruct() {
-    $this->sut = new FilteredPaymentMethodManager($this->paymentMethodManager, $this->payment, $this->account);
+    $this->sut = new PaymentExecutionPaymentMethodManager($this->payment, $this->account, $this->paymentMethodManager);
   }
 
   /**
-   * @covers ::filterDefinition
+   * @covers ::processDecoratedDefinitions
    */
-  public function testFilterDefinition() {
+  public function testProcessDecoratedDefinitions() {
     $payment_method_id_a = $this->randomMachineName();
     $payment_method_a = $this->getMock(PaymentMethodInterface::class);
     $payment_method_a->expects($this->atLeastOnce())
diff --git a/tests/src/Unit/Plugin/Payment/PaymentAwarePluginFilteredPluginManagerTest.php b/tests/src/Unit/Plugin/Payment/PaymentAwarePluginFilteredPluginManagerTest.php
index 4c70bd2..5589287 100644
--- a/tests/src/Unit/Plugin/Payment/PaymentAwarePluginFilteredPluginManagerTest.php
+++ b/tests/src/Unit/Plugin/Payment/PaymentAwarePluginFilteredPluginManagerTest.php
@@ -11,8 +11,7 @@ use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\payment\Entity\PaymentInterface;
 use Drupal\payment\PaymentAwareInterface;
-use Drupal\payment\Plugin\Payment\PaymentAwarePluginFilteredPluginManager;
-use Drupal\plugin\Plugin\PluginDefinitionMapperInterface;
+use Drupal\payment\Plugin\Payment\PaymentAwarePluginManagerDecorator;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -30,13 +29,6 @@ class PaymentAwarePluginFilteredPluginManagerTest extends UnitTestCase {
   protected $payment;
 
   /**
-   * The plugin definition mapper.
-   *
-   * @var \Drupal\plugin\Plugin\PluginDefinitionMapperInterface|\PHPUnit_Framework_MockObject_MockObject
-   */
-  protected $pluginDefinitionMapper;
-
-  /**
    * The original plugin manager.
    *
    * @var \Drupal\Component\Plugin\PluginManagerInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -46,25 +38,23 @@ class PaymentAwarePluginFilteredPluginManagerTest extends UnitTestCase {
   /**
    * The class under test.
    *
-   * @var \Drupal\payment\Plugin\Payment\PaymentAwarePluginFilteredPluginManager
+   * @var \Drupal\payment\Plugin\Payment\PaymentAwarePluginManagerDecorator
    */
   protected $sut;
 
   public function setUp() {
     $this->payment = $this->getMock(PaymentInterface::class);
 
-    $this->pluginDefinitionMapper = $this->getMock(PluginDefinitionMapperInterface::class);
-
     $this->pluginManager = $this->getMock(PluginManagerInterface::class);
 
-    $this->sut = new PaymentAwarePluginFilteredPluginManager($this->pluginManager, $this->pluginDefinitionMapper, $this->payment);
+    $this->sut = new PaymentAwarePluginManagerDecorator($this->payment, $this->pluginManager);
   }
 
   /**
    * @covers ::__construct
    */
   public function testConstruct() {
-    $this->sut = new PaymentAwarePluginFilteredPluginManager($this->pluginManager, $this->pluginDefinitionMapper, $this->payment);
+    $this->sut = new PaymentAwarePluginManagerDecorator($this->payment, $this->pluginManager);
   }
 
   /**
