given( $name = 'custom', SUT::register($name, CustomFilter::class), $filename = 'hoa://Test/Vfs/Foo?type=file', $content = 'Hello, World!', file_put_contents($filename, $content), $stream = fopen($filename, 'r') ) ->when( SUT::append($stream, $name), $result = stream_get_contents($stream) ) ->then ->string($result) ->isEqualTo( strtolower($content) . ' ' . strlen($content) ); } } class CustomFilter extends LUT\Filter\LateComputed { protected function compute() { $this->_buffer = strtolower($this->_buffer) . ' ' . strlen($this->_buffer); // proof that the buffer contains all the data return; } }