con = new MysqlConnection($GLOBALS['CONFIG']['db']['core']['masters']['admin']); } public function testDefault() : void { self::assertInstanceOf('\phpOMS\DataStorage\Database\Schema\Grammar\Grammar', new MysqlGrammar()); self::assertEquals('`', TestUtils::getMember(new MysqlGrammar(), 'systemIdentifier')); } public function testSchemaCreateReadDelete() : void { $definitions = \json_decode(\file_get_contents(__DIR__ . '/testSchema.json'), true); foreach ($definitions as $definition) { SchemaBuilder::createFromSchema($definition, $this->con)->execute(); } $table = new SchemaBuilder($this->con); $tables = $table->prefix($this->con->prefix)->selectTables()->execute()->fetchAll(\PDO::FETCH_COLUMN); self::assertContains($this->con->prefix . 'test', $tables); self::assertContains($this->con->prefix . 'test_foreign', $tables); $field = new SchemaBuilder($this->con); $fields = $field->prefix($this->con->prefix)->selectFields('test')->execute()->fetchAll(); foreach ($definitions['test']['fields'] as $key => $field) { self::assertTrue( ArrayUtils::inArrayRecursive($key, $fields), 'Couldn\'t find "' . $key . '" in array' ); } $delete = new SchemaBuilder($this->con); $delete->prefix($this->con->prefix)->dropTable('test')->execute(); $delete->prefix($this->con->prefix)->dropTable('test_foreign')->execute(); $tables = $table->prefix($this->con->prefix)->selectTables()->execute()->fetchAll(); self::assertNotContains($this->con->prefix . 'test', $tables); self::assertNotContains($this->con->prefix . 'test_foreign', $tables); } }