public function testGeneratePostActivation() { // Touch a new "insert.sql" file and copy a "create.sql" file /** @var \org\bovigo\vfs\vfsStreamFile $file */ $configDir = $this->stream->getChild("Config"); $file = vfsStream::newFile("create.sql")->at($configDir); $file->setContent(file_get_contents(__DIR__ . "/../" . static::TEST_MODULE_PATH . "Config" . DS . "thelia.sql")); vfsStream::newFile("insert.sql")->at($configDir); // Then run the generator $generator = new ModulePhpGenerator($this->getSmarty()); $generator->doGenerate($this->event); // Read the class include $this->getStreamPath("TheliaStudioTestModule.php"); $reflection = new \ReflectionClass("TheliaStudioTestModule\\TheliaStudioTestModule"); $this->assertTrue($reflection->hasConstant("MESSAGE_DOMAIN")); $this->assertEquals("theliastudiotestmodule", $reflection->getConstant("MESSAGE_DOMAIN")); $this->assertTrue($reflection->hasMethod("postActivation")); // get a method closure $method = $reflection->getMethod("postActivation"); $closure = $method->getClosure($reflection->newInstance()); // Test that the table doesn't exist /** @var \Propel\Runtime\DataFetcher\PDODataFetcher $stmt */ $stmt = $this->con->query("SHOW TABLES LIKE 'example_table'"); $this->assertEquals(0, $stmt->count()); // Execute the method $closure($this->con); // Now it exists /** @var \Propel\Runtime\DataFetcher\PDODataFetcher $stmt */ $stmt = $this->con->query("SHOW TABLES LIKE 'example_table'"); $this->assertEquals(1, $stmt->count()); }
public function testCreateForm() { /** * Run the module class generator for the form */ $generator = new ModulePhpGenerator($this->getSmarty()); $generator->doGenerate($this->event); $this->loadClassFromVfs("TheliaStudioTestModule", false); $this->loadClassFromVfs("Form/ExampleTableCreateForm"); $reflection = new \ReflectionClass("TheliaStudioTestModule\\Form\\ExampleTableCreateForm"); $this->assertTrue($reflection->isSubclassOf("TheliaStudioTestModule\\Form\\Base\\ExampleTableCreateForm")); $this->assertTrue($reflection->isSubclassOf("Thelia\\Form\\BaseForm")); $this->assertTrue($reflection->hasConstant("FORM_NAME")); $this->assertEquals("example_table_create", $reflection->getConstant("FORM_NAME")); /** * Mock the request to build the form */ new Translator(new Container()); $request = new Request(); $session = new Session(new MockArraySessionStorage()); $request->setSession($session); $baseForm = $reflection->newInstance($request); /** @var \Symfony\Component\Form\Form $form */ $form = $baseForm->getForm(); /** * Then test it */ $this->assertTrue($form->has("locale")); $this->assertTrue($form->has("title")); $this->assertTrue($form->has("description")); $this->assertTrue($form->has("chapo")); $this->assertTrue($form->has("postscriptum")); $this->assertTrue($form->has("visible")); $this->assertFalse($form->has("position")); $this->assertFalse($form->has("id")); }