diff --git a/config/install/replication.replication_settings.article.yml b/config/install/replication.replication_settings.article.yml
new file mode 100644
index 0000000..b6a07f0
--- /dev/null
+++ b/config/install/replication.replication_settings.article.yml
@@ -0,0 +1,9 @@
+langcode: en
+status: true
+dependencies: {  }
+id: article
+label: Replicate only article entities
+filter_id: entity_type
+parameters:
+  entity_type_id: node
+  bundle: article
diff --git a/config/install/replication.replication_settings.page.yml b/config/install/replication.replication_settings.page.yml
new file mode 100644
index 0000000..a0977a1
--- /dev/null
+++ b/config/install/replication.replication_settings.page.yml
@@ -0,0 +1,9 @@
+langcode: en
+status: true
+dependencies: {  }
+id: page
+label: Replicate only page entities
+filter_id: entity_type
+parameters:
+  entity_type_id: node
+  bundle: page
diff --git a/config/install/replication.replication_settings.published.yml b/config/install/replication.replication_settings.published.yml
new file mode 100644
index 0000000..11c4688
--- /dev/null
+++ b/config/install/replication.replication_settings.published.yml
@@ -0,0 +1,7 @@
+langcode: en
+status: true
+dependencies: {  }
+id: published
+label: Replicate published entities
+filter_id: published
+parameters: []
diff --git a/config/schema/replication.replication_settings.schema.yml b/config/schema/replication.replication_settings.schema.yml
new file mode 100644
index 0000000..caa01d4
--- /dev/null
+++ b/config/schema/replication.replication_settings.schema.yml
@@ -0,0 +1,16 @@
+replication.replication_settings.*:
+  type: config_entity
+  label: 'Replication settings config'
+  mapping:
+    id:
+      type: string
+      label: 'ID'
+    label:
+      type: label
+      label: 'Label'
+    filter_id:
+      type: string
+      label: 'Filter plugin ID'
+    parameters:
+      type: ignore
+      label: 'Filter parameters'
diff --git a/src/Changes/Changes.php b/src/Changes/Changes.php
index 2a0372b..10217f4 100644
--- a/src/Changes/Changes.php
+++ b/src/Changes/Changes.php
@@ -46,7 +46,7 @@ class Changes implements ChangesInterface {
 
   /**
    * @var ParameterBag
-   *   The parameters passed to the filter function.
+   *   The parameters passed to the filter plugin.
    */
   protected $parameters;
 
@@ -118,15 +118,15 @@ class Changes implements ChangesInterface {
       ->getRange($this->lastSeq, NULL);
 
     // Setup filter plugin.
-    $parameters = ($this->parameters instanceof ParameterBag) ? $this->parameters : new ParameterBag();
+    $parameters = ($this->parameters instanceof ParameterBag) ? $this->parameters->all() : [];
     $filter = NULL;
     if (is_string($this->filterName) && $this->filterName) {
-      $filter = $this->filterManager->createInstance($this->filterName);
+      $filter = $this->filterManager->createInstance($this->filterName, $parameters);
     }
     // If UUIDs are sent as a parameter, but no filter is set, automatically
     // select the "uuid" filter.
-    elseif ($parameters->has('uuids')) {
-      $filter = $this->filterManager->createInstance('uuid');
+    elseif (isset($parameters['uuids'])) {
+      $filter = $this->filterManager->createInstance('uuid', $parameters);
     }
 
     // Format the result array.
@@ -146,7 +146,7 @@ class Changes implements ChangesInterface {
       }
 
       // Filter the document.
-      if ($filter !== NULL && !$filter->filter($revision, $parameters)) {
+      if ($filter !== NULL && !$filter->filter($revision)) {
         continue;
       }
 
diff --git a/src/Changes/ChangesInterface.php b/src/Changes/ChangesInterface.php
index 1b42b86..c955845 100644
--- a/src/Changes/ChangesInterface.php
+++ b/src/Changes/ChangesInterface.php
@@ -30,7 +30,7 @@ interface ChangesInterface {
    * Set the parameters for the filter plugin.
    *
    * @param ParameterBag $parameters
-   *   The parameters passed to the filter function.
+   *   The parameters passed to the filter plugin.
    *
    * @return \Drupal\replication\Changes\ChangesInterface
    *   Returns $this.
diff --git a/src/Entity/ReplicationSettings.php b/src/Entity/ReplicationSettings.php
new file mode 100644
index 0000000..4d4ff0f
--- /dev/null
+++ b/src/Entity/ReplicationSettings.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace Drupal\replication\Entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityBase;
+use Drupal\replication\Entity\ReplicationSettingsInterface;
+
+/**
+ * Defines the replication settings entity.
+ *
+ * The replication settings are attached to a Workspace to define how that
+ * Workspace should be replicated.
+ *
+ * @ConfigEntityType(
+ *   id = "replication_settings",
+ *   label = @Translation("Replication settings"),
+ *   config_prefix = "replication_settings",
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "label" = "label"
+ *   }
+ * )
+ */
+class ReplicationSettings extends ConfigEntityBase implements ReplicationSettingsInterface {
+
+  /**
+   * An identifier for these replication settings.
+   *
+   * @var string
+   */
+  protected $id;
+
+  /**
+   * The human readable name for these replication settings.
+   *
+   * @var string
+   */
+  protected $label;
+
+  /**
+   * The plugin ID of a replication filter.
+   *
+   * @var string
+   */
+  protected $filter_id;
+
+  /**
+   * The replication filter parameters.
+   *
+   * @var array
+   */
+  protected $parameters;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFilterId() {
+    return $this->filter_id;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getParameters() {
+    return $this->parameters;
+  }
+}
diff --git a/src/Entity/ReplicationSettingsInterface.php b/src/Entity/ReplicationSettingsInterface.php
new file mode 100644
index 0000000..86defa4
--- /dev/null
+++ b/src/Entity/ReplicationSettingsInterface.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Drupal\replication\Entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+
+/**
+ * Provides an interface for replication settings entities.
+ */
+interface ReplicationSettingsInterface extends ConfigEntityInterface {
+
+  /**
+   * Get the plugin ID of the replication filter to use.
+   *
+   * @return string
+   */
+  public function getFilterId();
+
+  /**
+   * Get the replication filter parameters.
+   *
+   * @return array
+   */
+  public function getParameters();
+
+}
diff --git a/src/Plugin/ReplicationFilter/EntityTypeFilter.php b/src/Plugin/ReplicationFilter/EntityTypeFilter.php
index 5ab7393..e1e945a 100644
--- a/src/Plugin/ReplicationFilter/EntityTypeFilter.php
+++ b/src/Plugin/ReplicationFilter/EntityTypeFilter.php
@@ -4,13 +4,14 @@ namespace Drupal\replication\Plugin\ReplicationFilter;
 
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\replication\Plugin\ReplicationFilter\ReplicationFilterBase;
-use Symfony\Component\HttpFoundation\ParameterBag;
+use Symfony\Component\Console\Exception\LogicException;
 
 /**
  * Provides a filter based on entity type.
  *
- * Supported parameters:
- *   entity_type: a comma delimited list of entity type id's to include
+ * Supported configuration:
+ *   entity_type_id: a comma delimited list of entity type ID's to include
+ *   bundle: a comma delimited list of bundles matching the type ID's
  *
  * @ReplicationFilter(
  *   id = "entity_type",
@@ -23,16 +24,25 @@ class EntityTypeFilter extends ReplicationFilterBase {
   /**
    * {@inheritdoc}
    */
-  public function filter(EntityInterface $entity, ParameterBag $parameters) {
-    if ($parameters->has('entity_type')) {
-      $types = $parameters->get('entity_type');
+  public function filter(EntityInterface $entity) {
+    $entity_type_ids = $this->getDelimitedConfigurationValue(',', 'entity_type_id');
+    $bundles = $this->getDelimitedConfigurationValue(',', 'bundle');
+
+    // Ensure length of entity_type_ids and bundles are equal.
+    if (count($entity_type_ids) != count($bundles)) {
+      throw new LogicException('The entity_type_id and bundle filter parameters must have equal length.');
     }
-    else {
-      $types = '';
+
+    $entity_type_id = $entity->getEntityTypeId();
+    $bundle = $entity->bundle();
+
+    for ($i = 0; $i < count($entity_type_ids); $i++) {
+      if ($entity_type_ids[$i] == $entity_type_id && $bundles[$i] == $bundle) {
+        return TRUE;
+      }
     }
-    $types = explode(',', $types);
-    $types = array_filter(array_map('trim', $types));
-    return in_array($entity->bundle(), $types);
+
+    return FALSE;
   }
 
 }
diff --git a/src/Plugin/ReplicationFilter/PublishedFilter.php b/src/Plugin/ReplicationFilter/PublishedFilter.php
index d103c7c..d38b526 100644
--- a/src/Plugin/ReplicationFilter/PublishedFilter.php
+++ b/src/Plugin/ReplicationFilter/PublishedFilter.php
@@ -3,9 +3,9 @@
 namespace Drupal\replication\Plugin\ReplicationFilter;
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\node\NodeInterface;
 use Drupal\replication\Plugin\ReplicationFilter\ReplicationFilterBase;
-use Symfony\Component\HttpFoundation\ParameterBag;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 
 /**
  * Provides a filter for published entities.
@@ -18,16 +18,47 @@ use Symfony\Component\HttpFoundation\ParameterBag;
  *   description = @Translation("Replicate only nodes that are published.")
  * )
  */
-class PublishedFilter extends ReplicationFilterBase {
+class PublishedFilter extends ReplicationFilterBase implements ContainerFactoryPluginInterface {
+
+  /**
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * Constructs a new PublishedFilter.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->entityTypeManager = $entity_type_manager;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static($configuration, $plugin_id, $plugin_definition, $container->get('entity_type.manager'));
+  }
 
   /**
    * {@inheritdoc}
    */
-  public function filter(EntityInterface $entity, ParameterBag $parameters) {
-    if (!$entity instanceof NodeInterface) {
-      return false;
+  public function filter(EntityInterface $entity) {
+    $definition = $this->entityTypeManager->getDefinition($entity->getEntityTypeId());
+    if ($definition->get('status')) {
+      return $entity->status;
     }
-    return $entity->isPublished();
+    // Assume all entities without 'status' are published.
+    return TRUE;
   }
 
 }
diff --git a/src/Plugin/ReplicationFilter/ReplicationFilterBase.php b/src/Plugin/ReplicationFilter/ReplicationFilterBase.php
index 4fa7b92..c551bc2 100644
--- a/src/Plugin/ReplicationFilter/ReplicationFilterBase.php
+++ b/src/Plugin/ReplicationFilter/ReplicationFilterBase.php
@@ -37,4 +37,54 @@ abstract class ReplicationFilterBase extends PluginBase implements ReplicationFi
     return $this->description;
   }
 
+  /**
+   * {@inheritdoc}
+   *
+   * For replication filters, the plugin configuration contains what would be
+   * passed as "query_params" to a CouchDB filter function.
+   */
+  public function getConfiguration() {
+    return $this->configuration;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setConfiguration(array $configuration) {
+    $this->configuration = $configuration;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function defaultConfiguration() {
+    return array();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return array();
+  }
+
+  /**
+   * Parse a configuration as delimited values.
+   *
+   * @param string $delimiter
+   *   The delimiter of each value.
+   * @param string $configuration_key
+   *   The key of the configuration to get the values for.
+   *
+   * @return array
+   *   The configuration parsed into an array of values.
+   */
+  protected function getDelimitedConfigurationValue($delimiter, $configuration_key) {
+    $configuration = $this->getConfiguration();
+    $values = (isset($configuration[$configuration_key])) ? $configuration[$configuration_key] : '';
+    $values = explode($delimiter, $values);
+    $values = array_filter(array_map('trim', $values));
+    return $values;
+  }
+
 }
diff --git a/src/Plugin/ReplicationFilter/UuidFilter.php b/src/Plugin/ReplicationFilter/UuidFilter.php
index 61fdfa0..0ee8fa6 100644
--- a/src/Plugin/ReplicationFilter/UuidFilter.php
+++ b/src/Plugin/ReplicationFilter/UuidFilter.php
@@ -4,7 +4,6 @@ namespace Drupal\replication\Plugin\ReplicationFilter;
 
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\replication\Plugin\ReplicationFilter\ReplicationFilterBase;
-use Symfony\Component\HttpFoundation\ParameterBag;
 
 /**
  * Provides filtering by UUID.
@@ -24,10 +23,8 @@ class UuidFilter extends ReplicationFilterBase {
   /**
    * {@inheritdoc}
    */
-  public function filter(EntityInterface $entity, ParameterBag $parameters) {
-    $uuids = $parameters->get('uuids') ?: '';
-    $uuids = explode(',', $uuids);
-    $uuids = array_map('trim', $uuids);
+  public function filter(EntityInterface $entity) {
+    $uuids = $this->getDelimitedConfigurationValue(',', 'uuids');
     return in_array($entity->uuid(), $uuids);
   }
 
diff --git a/src/Plugin/ReplicationFilterInterface.php b/src/Plugin/ReplicationFilterInterface.php
index dae6556..17c7fa9 100644
--- a/src/Plugin/ReplicationFilterInterface.php
+++ b/src/Plugin/ReplicationFilterInterface.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\replication\Plugin;
 
+use Drupal\Component\Plugin\ConfigurablePluginInterface;
 use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Symfony\Component\HttpFoundation\ParameterBag;
@@ -12,7 +13,7 @@ use Symfony\Component\HttpFoundation\ParameterBag;
  * Replication filters are used to filter out entities from a changeset during
  * replication.
  */
-interface ReplicationFilterInterface extends PluginInspectionInterface {
+interface ReplicationFilterInterface extends PluginInspectionInterface, ConfigurablePluginInterface {
 
   /**
    * Get the label for the filter.
@@ -39,6 +40,6 @@ interface ReplicationFilterInterface extends PluginInspectionInterface {
    * @return bool
    *   Return TRUE if it should be included, else FALSE.
    */
-  public function filter(EntityInterface $entity, ParameterBag $parameters);
+  public function filter(EntityInterface $entity);
 
 }
diff --git a/src/ReplicationTask/ReplicationTask.php b/src/ReplicationTask/ReplicationTask.php
index bb39a21..7b109e8 100644
--- a/src/ReplicationTask/ReplicationTask.php
+++ b/src/ReplicationTask/ReplicationTask.php
@@ -55,7 +55,10 @@ class ReplicationTask implements ReplicationTaskInterface {
   /**
    * {@inheritdoc}
    */
-  public function setParametersByArray(array $parameters_array = array()) {
+  public function setParametersByArray(array $parameters_array = NULL) {
+    if ($parameters_array == NULL) {
+      $parameters_array = [];
+    }
     $parameters = new ParameterBag($parameters_array);
     return $this->setParameters($parameters);
   }
diff --git a/src/ReplicationTask/ReplicationTaskInterface.php b/src/ReplicationTask/ReplicationTaskInterface.php
index 22f7a13..a8f0146 100644
--- a/src/ReplicationTask/ReplicationTaskInterface.php
+++ b/src/ReplicationTask/ReplicationTaskInterface.php
@@ -51,13 +51,13 @@ interface ReplicationTaskInterface {
    * The array input is converted to a ParameterBag and then passed to
    * setParameters.
    *
-   * @param array $parameters_array
+   * @param array|NULL $parameters_array
    *   An associative array of name-value parameters.
    *
    * @return ReplicationTaskInterface
    *   Returns $this.
    */
-  public function setParametersByArray(array $parameters_array = array());
+  public function setParametersByArray(array $parameters_array = NULL);
 
   /**
    * Set a parameter for the filter plugin.
diff --git a/tests/src/Functional/ReplicationFilterTest.php b/tests/src/Functional/ReplicationFilterTest.php
index de0b364..ef3f2db 100644
--- a/tests/src/Functional/ReplicationFilterTest.php
+++ b/tests/src/Functional/ReplicationFilterTest.php
@@ -14,8 +14,14 @@ use Symfony\Component\HttpFoundation\ParameterBag;
  */
 class ReplicationFilterTest extends WebTestBase {
 
+  /**
+   * {@inheritdoc}
+   */
   protected $strictConfigSchema = FALSE;
 
+  /**
+   * {@inheritdoc}
+   */
   public static $modules = [
     'multiversion',
     'node',
@@ -137,7 +143,7 @@ class ReplicationFilterTest extends WebTestBase {
     $entity2->workspace = $workspace;
     $entity2->save();
 
-    $parameters = new ParameterBag(['entity_type' => 'article']);
+    $parameters = new ParameterBag(['entity_type_id' => 'node', 'bundle' => 'article']);
     $changes = $changes_factory->get($workspace)->filter('entity_type')->parameters($parameters)->getNormal();
     $this->assertEqual(1, count($changes), 'Expect there is 1 entity in the changeset.');
   }
diff --git a/tests/src/Kernel/ReplicationSettingsTest.php b/tests/src/Kernel/ReplicationSettingsTest.php
new file mode 100644
index 0000000..2adbb3d
--- /dev/null
+++ b/tests/src/Kernel/ReplicationSettingsTest.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Drupal\Tests\replication\Kernel;
+
+use Drupal\KernelTests\KernelTestBase;
+use Drupal\replication\Entity\ReplicationSettings;
+
+/**
+ * Test operations on ReplicationSettings config entity.
+ *
+ * @group replication
+ */
+class ReplicationSettingsTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $strictConfigSchema = FALSE;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'user',
+    'serialization',
+    'key_value',
+    'multiversion',
+    'replication',
+  ];
+
+  /**
+   * Test creation of ReplicationSettings config entity.
+   */
+  public function testCreation() {
+    $this->installEntitySchema('replication_settings');
+    $entityTypeManager = $this->container->get('entity_type.manager');
+    $entity = $entityTypeManager->getStorage('replication_settings')->create([
+      'id' => 'test',
+      'label' => 'Replication settings test',
+      'filter_id' => 'entity_type',
+      'parameters' => ['entity_type_id' => 'node', 'bundle' => 'article'],
+    ]);
+    $this->assertTrue($entity instanceof ReplicationSettings, 'Replication Settings entity was created.');
+    $entity->save();
+
+    $entity = $entityTypeManager->getStorage('replication_settings')->load('test');
+
+    $this->assertEquals($entity->id(), 'test', 'Test replication settings config entity successfully saved.');
+  }
+
+}
diff --git a/tests/src/Unit/Plugin/ReplicationFilter/EntityTypeFilterTest.php b/tests/src/Unit/Plugin/ReplicationFilter/EntityTypeFilterTest.php
index 4d97d94..3d4433d 100644
--- a/tests/src/Unit/Plugin/ReplicationFilter/EntityTypeFilterTest.php
+++ b/tests/src/Unit/Plugin/ReplicationFilter/EntityTypeFilterTest.php
@@ -16,44 +16,61 @@ class EntityTypeFilterTest extends \PHPUnit_Framework_TestCase {
   /**
    * Test filtering entity types.
    *
+   * @param string $entity_type_id
+   *   The entity type ID filter parameter.
+   * @param string $bundle
+   *   The bundle filter parameter.
+   * @param string $expected
+   *   The expected return value from the filter method.
+   *
    * @dataProvider filterTestProvider
    */
-  public function testFilter($entity_type, $parameter_value, $expected) {
+  public function testFilter($entity_type_id, $bundle, $expected) {
     // Use a mock builder for the class under test to eliminate the need to
-    // mock all the dependencies. This is OK since the method under test is a
-    // pure function, i.e. does not use the state createdy by the constructor.
+    // mock all the dependencies. The method under test uses the $configuration
+    // set by the constructor, but is retrieved via a get method we can stub.
     $filter = $this->getMockBuilder(EntityTypeFilter::class)
       ->disableOriginalConstructor()
-      ->setMethods(NULL)
+      ->setMethods(['getConfiguration'])
       ->getMock();
+    $configuration = [
+      'entity_type_id' => $entity_type_id,
+      'bundle' => $bundle,
+    ];
+    $filter->method('getConfiguration')
+      ->willReturn($configuration);
     $entity = $this->getMock(EntityInterface::class);
+    $entity->method('getEntityTypeId')
+      ->willReturn('node');
     $entity->method('bundle')
       ->willReturn('article');
-    $parameters = new ParameterBag(['entity_type' => $parameter_value]);
 
-    $value = $filter->filter($entity, $parameters);
+    $value = $filter->filter($entity);
 
     $this->assertEquals($expected, $value);
   }
 
   /**
-   * Provide test cases for the "entity_type" parameter.
+   * Provide test cases for the "entity_type_id" and "bundle" parameters.
    */
   public function filterTestProvider() {
     return [
       // Test singular parameter values.
-      ['article', 'article', TRUE],
-      ['article', 'page', FALSE],
+      ['node', 'article', TRUE],
+      ['node', 'page', FALSE],
       // Test multiple parameter values.
-      ['article', 'page,article', TRUE],
-      ['article', 'article,page', TRUE],
-      ['article', 'page,news', FALSE],
+      ['node,node', 'page,article', TRUE],
+      ['node,node', 'article,page', TRUE],
+      ['node,node', 'page,news', FALSE],
+      // Test mismatched multiple parameter values.
+      ['node', 'page,article', FALSE],
+      ['node,node', 'node', FALSE],
       // Test bad data that might be entered into the parameters:
-      ['article', '', FALSE],
-      ['article', NULL, FALSE],
-      ['article', FALSE, FALSE],
-      ['article', TRUE, FALSE],
-      ['article', 0, FALSE],
+      ['', '', FALSE],
+      [NULL, NULL, FALSE],
+      [FALSE, FALSE, FALSE],
+      [TRUE, TRUE, FALSE],
+      [0, 0, FALSE],
     ];
   }
 
diff --git a/tests/src/Unit/Plugin/ReplicationFilter/UuidFilterTest.php b/tests/src/Unit/Plugin/ReplicationFilter/UuidFilterTest.php
index a16be60..1e8f42b 100644
--- a/tests/src/Unit/Plugin/ReplicationFilter/UuidFilterTest.php
+++ b/tests/src/Unit/Plugin/ReplicationFilter/UuidFilterTest.php
@@ -20,18 +20,22 @@ class UuidFilterTest extends \PHPUnit_Framework_TestCase {
    */
   public function testFilter($uuid, $parameter_value, $expected) {
     // Use a mock builder for the class under test to eliminate the need to
-    // mock all the dependencies. This is OK since the method under test is a
-    // pure function, i.e. does not use the state createdy by the constructor.
+    // mock all the dependencies. The method under test uses the $configuration
+    // set by the constructor, but is retrieved via a get method we can stub.
     $filter = $this->getMockBuilder(UuidFilter::class)
       ->disableOriginalConstructor()
-      ->setMethods(NULL)
+      ->setMethods(['getConfiguration'])
       ->getMock();
+    $configuration = [
+      'uuids' => $parameter_value,
+    ];
+    $filter->method('getConfiguration')
+      ->willReturn($configuration);
     $entity = $this->getMock(EntityInterface::class);
     $entity->method('uuid')
       ->willReturn($uuid);
-    $parameters = new ParameterBag(['uuids' => $parameter_value]);
 
-    $value = $filter->filter($entity, $parameters);
+    $value = $filter->filter($entity);
 
     $this->assertEquals($expected, $value);
   }
