public function testTransformWithFilterBefore() { $filter1 = $this->mockInterface('CM_Usertext_Filter_Interface')->newInstance(); $filter2 = $this->mockInterface('CM_Usertext_Filter_Interface')->newInstance(); $filterBetween = $this->mockInterface('CM_Usertext_Filter_Interface')->newInstance(); $filter1->mockMethod('transform')->set(function ($input) { $this->assertSame('.', $input); return $input . '.'; }); /** @var CM_Usertext_Filter_Interface $filter1 */ $filter2->mockMethod('transform')->set(function ($input) { $this->assertSame('...', $input); return $input . '.'; }); /** @var CM_Usertext_Filter_Interface $filter2 */ $filterBetween->mockMethod('transform')->set(function ($input) { $this->assertSame('..', $input); return $input . '.'; }); /** @var CM_Usertext_Filter_Interface $filterBetween */ $usertext = new CM_Usertext_Usertext(); $usertext->addFilter($filter1); $usertext->addFilter($filter2); $usertext->addFilterAfter(get_class($filter1), $filterBetween); $this->assertSame('....', $usertext->transform('.', new CM_Frontend_Render())); }