Yaffs site version 1.1
[yaffs-website] / vendor / gabordemooij / redbean / testing / RedUNIT / Base / Logging.php
1 <?php
2
3 namespace RedUNIT\Base;
4
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;
9
10 /**
11  * Logging
12  *
13  * Tests the Query Logging tools that are part of RedBeanPHP.
14  *
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
19  *
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.
23  */
24 class Logging extends Base
25 {
26         /**
27          * Test basic logging functionality.
28          *
29          * @return void
30          */
31         public function testBasicLogging()
32         {
33                 R::nuke();
34                 R::startLogging();
35                 R::store( R::dispense( 'book' ) );
36                 $logs = R::getLogs();
37                 $count = count( $logs );
38                 asrt( ( count( $logs ) > 0 ), TRUE );
39                 asrt( ( R::getLogger() instanceof Logger ), TRUE );
40                 R::stopLogging();
41                 R::store( R::dispense( 'book' ) );
42                 $logs = R::getLogs();
43                 asrt( ( count( $logs ) === 0 ), TRUE );
44         }
45
46         /**
47          * Can we manually set a logger and enable logging?
48          *
49          * @return void
50          */
51         public function testCanSetLogger()
52         {
53                         R::nuke();
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 );
72         }
73
74         /**
75          * Test query counter.
76          *
77          * @return void
78          */
79         public function testQueryCount()
80         {
81                 R::nuke();
82                 R::store( R::dispense( 'bean' ) );
83                 R::resetQueryCount();
84                 asrt( R::getQueryCount(), 0 );
85                 R::findOne( 'bean' );
86                 asrt( R::getQueryCount(), 1 );
87                 R::resetQueryCount();
88                 asrt( R::getQueryCount(), 0 );
89                 R::findOne( 'bean' );
90                 R::findOne( 'bean' );
91                 R::findOne( 'bean' );
92                 asrt( R::getQueryCount(), 0 );
93                 R::store( R::dispense( 'bean2' ) );
94                 R::resetQueryCount();
95                 R::findOne( 'bean' );
96                 R::findOne( 'bean2' );
97                 asrt( R::getQueryCount(), 2 );
98                 R::resetQueryCount();
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 );
111         }
112 }