Yaffs site version 1.1
[yaffs-website] / vendor / gabordemooij / redbean / testing / RedUNIT / Base / Logging.php
diff --git a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Logging.php b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Logging.php
new file mode 100644 (file)
index 0000000..0357ed0
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+
+namespace RedUNIT\Base;
+
+use RedUNIT\Base as Base;
+use RedBeanPHP\Facade as R;
+use RedBeanPHP\Logger as Logger;
+use RedBeanPHP\Logger\RDefault as RDefault;
+
+/**
+ * Logging
+ *
+ * Tests the Query Logging tools that are part of RedBeanPHP.
+ *
+ * @file    RedUNIT/Base/Logging.php
+ * @desc    Tests Logging facilities.
+ * @author  Gabor de Mooij and the RedBeanPHP Community
+ * @license New BSD/GPLv2
+ *
+ * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
+ * This source file is subject to the New BSD/GPLv2 License that is bundled
+ * with this source code in the file license.txt.
+ */
+class Logging extends Base
+{
+       /**
+        * Test basic logging functionality.
+        *
+        * @return void
+        */
+       public function testBasicLogging()
+       {
+               R::nuke();
+               R::startLogging();
+               R::store( R::dispense( 'book' ) );
+               $logs = R::getLogs();
+               $count = count( $logs );
+               asrt( ( count( $logs ) > 0 ), TRUE );
+               asrt( ( R::getLogger() instanceof Logger ), TRUE );
+               R::stopLogging();
+               R::store( R::dispense( 'book' ) );
+               $logs = R::getLogs();
+               asrt( ( count( $logs ) === 0 ), TRUE );
+       }
+
+       /**
+        * Can we manually set a logger and enable logging?
+        *
+        * @return void
+        */
+       public function testCanSetLogger()
+       {
+                       R::nuke();
+                       R::store( R::dispense( 'bean' ) );
+                       $logger = new RDefault;
+                       $logger->setMode( RDefault::C_LOGGER_ARRAY );
+                       $database = R::getDatabaseAdapter()->getDatabase();
+                       $database->setLogger( $logger );
+                       asrt( $database->getLogger(), $logger );
+                       $database->setEnableLogging( FALSE );
+                       $logs = $logger->getLogs();
+                       asrt( is_array( $logs ), TRUE );
+                       asrt( count( $logs ), 0 );
+                       $database->setEnableLogging( TRUE );
+                       $logs = $logger->getLogs();
+                       asrt( is_array( $logs ), TRUE );
+                       asrt( count( $logs ), 0 );
+                       R::findOne( 'bean' ); //writes 3 log entries
+                       $logs = $logger->getLogs();
+                       asrt( is_array( $logs ), TRUE );
+                       asrt( count( $logs ), 3 );
+       }
+
+       /**
+        * Test query counter.
+        *
+        * @return void
+        */
+       public function testQueryCount()
+       {
+               R::nuke();
+               R::store( R::dispense( 'bean' ) );
+               R::resetQueryCount();
+               asrt( R::getQueryCount(), 0 );
+               R::findOne( 'bean' );
+               asrt( R::getQueryCount(), 1 );
+               R::resetQueryCount();
+               asrt( R::getQueryCount(), 0 );
+               R::findOne( 'bean' );
+               R::findOne( 'bean' );
+               R::findOne( 'bean' );
+               asrt( R::getQueryCount(), 0 );
+               R::store( R::dispense( 'bean2' ) );
+               R::resetQueryCount();
+               R::findOne( 'bean' );
+               R::findOne( 'bean2' );
+               asrt( R::getQueryCount(), 2 );
+               R::resetQueryCount();
+               R::findOne( 'bean', ' id < 100' );
+               R::findOne( 'bean', ' id < 101' );
+               R::findOne( 'bean', ' id < 102' );
+               R::findOne( 'bean', ' id < 103' );
+               asrt( R::getQueryCount(), 4 );
+               R::findOne( 'bean', ' id < 100' );
+               R::findOne( 'bean', ' id < 101' );
+               R::findOne( 'bean', ' id < 102' );
+               R::findOne( 'bean', ' id < 103' );
+               asrt( R::getQueryCount(), 4 );
+               R::findOne( 'bean', ' id < 104' );
+               asrt( R::getQueryCount(), 5 );
+       }
+}