3 namespace RedUNIT\Base;
5 use RedUNIT\Base as Base;
6 use RedBeanPHP\Facade as R;
7 use RedBeanPHP\Logger as Logger;
8 use RedBeanPHP\Logger\RDefault as RDefault;
13 * Tests the Query Logging tools that are part of RedBeanPHP.
15 * @file RedUNIT/Base/Logging.php
16 * @desc Tests Logging facilities.
17 * @author Gabor de Mooij and the RedBeanPHP Community
18 * @license New BSD/GPLv2
20 * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
21 * This source file is subject to the New BSD/GPLv2 License that is bundled
22 * with this source code in the file license.txt.
24 class Logging extends Base
27 * Test basic logging functionality.
31 public function testBasicLogging()
35 R::store( R::dispense( 'book' ) );
37 $count = count( $logs );
38 asrt( ( count( $logs ) > 0 ), TRUE );
39 asrt( ( R::getLogger() instanceof Logger ), TRUE );
41 R::store( R::dispense( 'book' ) );
43 asrt( ( count( $logs ) === 0 ), TRUE );
47 * Can we manually set a logger and enable logging?
51 public function testCanSetLogger()
54 R::store( R::dispense( 'bean' ) );
55 $logger = new RDefault;
56 $logger->setMode( RDefault::C_LOGGER_ARRAY );
57 $database = R::getDatabaseAdapter()->getDatabase();
58 $database->setLogger( $logger );
59 asrt( $database->getLogger(), $logger );
60 $database->setEnableLogging( FALSE );
61 $logs = $logger->getLogs();
62 asrt( is_array( $logs ), TRUE );
63 asrt( count( $logs ), 0 );
64 $database->setEnableLogging( TRUE );
65 $logs = $logger->getLogs();
66 asrt( is_array( $logs ), TRUE );
67 asrt( count( $logs ), 0 );
68 R::findOne( 'bean' ); //writes 3 log entries
69 $logs = $logger->getLogs();
70 asrt( is_array( $logs ), TRUE );
71 asrt( count( $logs ), 3 );
79 public function testQueryCount()
82 R::store( R::dispense( 'bean' ) );
84 asrt( R::getQueryCount(), 0 );
86 asrt( R::getQueryCount(), 1 );
88 asrt( R::getQueryCount(), 0 );
92 asrt( R::getQueryCount(), 0 );
93 R::store( R::dispense( 'bean2' ) );
96 R::findOne( 'bean2' );
97 asrt( R::getQueryCount(), 2 );
99 R::findOne( 'bean', ' id < 100' );
100 R::findOne( 'bean', ' id < 101' );
101 R::findOne( 'bean', ' id < 102' );
102 R::findOne( 'bean', ' id < 103' );
103 asrt( R::getQueryCount(), 4 );
104 R::findOne( 'bean', ' id < 100' );
105 R::findOne( 'bean', ' id < 101' );
106 R::findOne( 'bean', ' id < 102' );
107 R::findOne( 'bean', ' id < 103' );
108 asrt( R::getQueryCount(), 4 );
109 R::findOne( 'bean', ' id < 104' );
110 asrt( R::getQueryCount(), 5 );