/**
  * @inheritdoc
  * @return string
  */
 public function filter($value)
 {
     if (!is_string($value)) {
         $value = StringHelper::toStr($value);
     }
     $pattern = StringHelper::toStr($this->pattern);
     $replacement = StringHelper::toStr($this->replacement);
     if (is_string($pattern) && !empty($pattern) && !empty($replacement)) {
         $value = preg_replace($pattern, $replacement, $value);
     }
     return parent::filter($value);
 }
 protected function setUp()
 {
     parent::setUp();
     $this->stub = $this->getMockForAbstractClass(BaseAttribute::className(), [], '', false, true, true, ['attributes']);
     $this->stub->expects($this->any())->method('attributes')->will($this->returnValue(['default' => 100, 'test1' => ['filter' => StringFilter::className(), 'params' => ['maxLength' => 10]], 'text' => new StringFilter(['maxLength' => 10]), 'data' => [new DefaultFilter(['default' => 'Hello world!']), new StringFilter(['maxLength' => 10])], 'data1' => [new DefaultFilter(['default' => 'Hello world!']), ['filter' => StringFilter::className(), 'params' => ['maxLength' => 10]]]]));
 }