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());
 }