public function testOptions() { $this->compiler->setClassName('Container_Controls'); $this->compiler->addConfig(['controls' => ['date' => ['format' => 'foo'], 'translations' => ['enable' => TRUE, 'date' => 'bar']]]); $this->compile(); eval($this->compile()); $container = new Container_Controls(); $count = count(\Nette\Forms\Validator::$messages); $container->initialize(); $this->assertNotSame($count, count(\Nette\Forms\Validator::$messages)); $this->assertSame('bar', \Nette\Forms\Validator::$messages[\WebChemistry\Forms\Controls\Date::VALID]); $this->assertSame('foo', \WebChemistry\Forms\Controls\Date::$dateFormat); }
public function testEvents() { $this->compiler->setClassName('Container_Events'); eval($this->compiler->compile()); /** @var \Nette\DI\Container $container */ $container = new Container_Events(); /** @var _MockStorage $class */ $this->assertNotNull($class = $container->getByType(\WebChemistry\Images\IImageStorage::class)); $this->assertInstanceOf(\WebChemistry\Images\IImageStorage::class, $class); $this->assertInstanceOf(_MockStorage::class, $class); $events = $class->getEvents()['onCreate']; $this->assertTrue(is_callable($events[0])); $events[0](); $this->assertTrue(_Events::$called); _Events::$called = FALSE; $this->assertTrue(is_callable($events[1])); $events[1](); $this->assertTrue(_Events::$called); }
/** * @return array of (code, file[]) */ protected function generate($class, $generator) { $compiler = new Compiler(); $compiler->setClassName($class); $code = call_user_func_array($generator, [&$compiler]) ?: $compiler->compile(); return ["<?php\n{$code}", serialize($compiler->exportDependencies())]; }