/** * {@inheritdoc} * */ public static function setUpBeforeClass() { parent::setUpBeforeClass(); StaticDataLayer::disconnect(); StaticDataLayer::connect('localhost', 'test', 'test', self::$dataSchema); StaticDataLayer::executeNone('alter table `test_data`.`TABLE1` engine=innodb'); }
/** * Drops all tables in test_data and test_audit. */ protected static function dropAllTables() { $sql = "\nselect TABLE_SCHEMA as table_schema\n, TABLE_NAME as table_name\nfrom information_schema.TABLES\nwhere TABLE_SCHEMA in (%s,%s)"; $sql = sprintf($sql, StaticDataLayer::quoteString(self::$dataSchema), StaticDataLayer::quoteString(self::$auditSchema)); $tables = StaticDataLayer::executeRows($sql); foreach ($tables as $table) { $sql = "drop table `%s`.`%s`"; $sql = sprintf($sql, $table['table_schema'], $table['table_name']); StaticDataLayer::executeNone($sql); } }
/** * @param string $query The SQL statement. * * @return int The number of affected rows (if any). */ public static function executeNone($query) { self::logQuery($query); return self::$dl->executeNone($query); }
/** * Test delete trigger is working correctly. */ public function test02c() { StaticDataLayer::query("SET time_zone = 'Europe/Amsterdam'"); // Delete a row from AUT_COMPANY. $sql = sprintf(' delete from `AUT_COMPANY` where `cmp_abbr` = %s', StaticDataLayer::quoteString('SYS')); StaticDataLayer::executeNone($sql); // Get audit rows. $sql = sprintf("\nselect * \nfrom `test_audit`.`AUT_COMPANY`\nwhere audit_statement = 'DELETE'"); $rows = StaticDataLayer::executeRows($sql); // We expect 1 row. $this->assertEquals(1, count($rows)); $row = $rows[0]; // Tests on fields. $time = new \DateTime(); $this->assertLessThanOrEqual(date_format($time->add(new \DateInterval('PT1M')), 'Y-m-d H:i:s'), $row['audit_timestamp']); $time = new \DateTime(); $this->assertGreaterThanOrEqual(date_format($time->sub(new \DateInterval('PT1M')), 'Y-m-d H:i:s'), $row['audit_timestamp']); $this->assertEquals('OLD', $row['audit_type']); $this->assertNotEmpty($row['audit_uuid']); $this->assertEquals(3, $row['audit_rownum']); $this->assertSame('12345', $row['audit_ses_id']); $this->assertSame('7011', $row['audit_usr_id']); $this->assertEquals('1', $row['cmp_id']); $this->assertEquals('SYS', $row['cmp_abbr']); $this->assertEquals('CMP_ID_SYS', $row['cmp_label']); }
$files = [__DIR__ . '/../vendor/autoload.php', __DIR__ . '/../../vendor/autoload.php', __DIR__ . '/../../../vendor/autoload.php', __DIR__ . '/../../../../vendor/autoload.php']; foreach ($files as $file) { if (file_exists($file)) { require $file; break; } } declare (ticks=1); //---------------------------------------------------------------------------------------------------------------------- function signalHandler() { $GLOBALS['exit'] = true; } //---------------------------------------------------------------------------------------------------------------------- $GLOBALS['exit'] = false; pcntl_signal(SIGUSR1, "signalHandler"); // Set error handler. $handler = new ErrorHandler(); $handler->register(); StaticDataLayer::connect('localhost', 'test', 'test', 'test_data'); while (true) { if ($GLOBALS['exit']) { break; } StaticDataLayer::begin(); StaticDataLayer::executeNone('insert into TABLE1(c) values(1)'); StaticDataLayer::executeNone('update TABLE1 set c = 2'); StaticDataLayer::executeNone('delete from TABLE1 where c = 2'); StaticDataLayer::commit(); } StaticDataLayer::disconnect();