public function testSimpleLogging() { if (!extension_loaded('pdo_sqlite')) { self::markTestSkipped("Please install 'pdo_sqlite' in order to run this test"); } $event = new LoggerLoggingEvent("LoggerAppenderPDOTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $dbname = '../../../target/pdotest.sqlite'; $dsn = 'sqlite:' . $dbname; $database = new PDO($dsn); $database = null; $appender = new LoggerAppenderPDO("myname"); $appender->setDSN($dsn); $appender->setCreateTable(true); $appender->activateOptions(); $appender->append($event); $db = $appender->getDatabaseHandle(); $q = "select * from log4php_log"; $error = ""; if ($result = $db->query($q)) { while ($row = $result->fetch()) { self::assertEquals($row['1'], 'TEST'); self::assertEquals($row['2'], 'ERROR'); self::assertEquals($row['3'], 'testmessage'); } } else { // todo propagate exception to phpunit self::assertTrue(false); } $appender->close(); }
/** Tests new-style logging using prepared statements and the default SQL definition. */ public function testSimpleWithDefaults() { if (!extension_loaded('pdo_sqlite')) { self::markTestSkipped("Please install 'pdo_sqlite' in order to run this test"); } // Log event $event = new LoggerLoggingEvent("LoggerAppenderPDOTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $appender = new LoggerAppenderPDO("myname"); $appender->setDSN(self::dsn); $appender->activateOptions(); $appender->append($event); $appender->close(); // Test the default pattern %d,%c,%p,%m,%t,%F,%L $db = new PDO(self::dsn); $query = "SELECT * FROM log4php_log"; $sth = $db->query($query); $row = $sth->fetch(PDO::FETCH_NUM); self::assertTrue(is_array($row), "No rows found."); self::assertEquals(7, count($row)); self::assertEquals(1, preg_match('/^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d$/', $row[0])); // %d = date self::assertEquals('TEST', $row[1]); // %c = category self::assertEquals('ERROR', $row[2]); // %p = priority self::assertEquals('testmessage', $row[3]); // %m = message self::assertEquals(posix_getpid(), $row[4]); // %t = thread self::assertEquals('NA', $row[5]); // %F = file, NA due to phpunit magic self::assertEquals('NA', $row[6]); // %L = line, NA due to phpunit magic }
/** * Check whether close() actually closes the database connection. */ public function testClose() { $event = new LoggerLoggingEvent("LoggerAppenderPDOTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $appender = new LoggerAppenderPDO("myname"); $appender->setDSN(self::$dsn); $appender->activateOptions(); $appender->append($event); $appender->close(); self::assertNull($appender->getDatabaseHandle()); }