public function testProcessorIterative()
{
$handlers = new HandlerContainer();
$handlers->add('name', function (ShortcodeInterface $s) {
return $s->getName();
})->add('content', function (ShortcodeInterface $s) {
return $s->getContent();
})->addAlias('c', 'content')->addAlias('n', 'name')->addAlias('d', 'c')->addAlias('e', 'c');
$processor = new Processor(new RegexParser(), $handlers);
/** @var $processor Processor */
$processor = $processor->withRecursionDepth(0)->withMaxIterations(2);
$this->assertSame('x a y', $processor->process('x [c]a[/c] y'));
$this->assertSame('x abc y', $processor->process('x [c]a[d]b[/d]c[/c] y'));
$this->assertSame('x ab[e]c[/e]de y', $processor->process('x [c]a[d]b[e]c[/e]d[/d]e[/c] y'));
$processor = $processor->withMaxIterations(null);
$this->assertSame('x abcde y', $processor->process('x [c]a[d]b[e]c[/e]d[/d]e[/c] y'));
}