/** * @testdox Callbacks can be used to render custom content types */ public function DynamicRendererUsesCallbacks(UnitTester $I) { require_once __DIR__ . '/Mock/Content.php'; $renderer = new Renderer(['token' => '*/*'], new Container()); // Static method $renderer->registerContentType('NewContent', [NewContentType::class, 'asHtml']); // Dynamic method $renderer->registerContentType('OtherContent', 'asHtml'); // Callable $renderer->registerContentType('Default', function (Content $content) { return 'default: ' . $content->getContents() . "\n"; }); /** @var ContentTypeInterface[] $content */ $content = array(new ContentType('ContentType'), new NewContentType('NewContentType'), new OtherContentType('OtherContentType'), new UnregisteredContentType('UnregisteredContentType')); foreach ($content as $c) { $c->accept($renderer); } $I->assertEquals("standard: ContentType\n" . "static: NewContentType\n" . "dynamic: OtherContentType\n" . "default: UnregisteredContentType\n", $renderer->getContents()); }
/** * @testdox Unknown meta data is set to null */ public function MetadataUnknown(UnitTester $I) { $renderer = new Renderer(['token' => '*/*'], new Container()); $meta = $renderer->getMetadata('foo'); $I->assertEquals(null, $meta); }