Yaffs site version 1.1
[yaffs-website] / vendor / gabordemooij / redbean / testing / RedUNIT / Base / Observers.php
1 <?php
2
3 namespace RedUNIT\Base;
4
5 use RedUNIT\Base as Base;
6 use RedBeanPHP\Facade as R;
7 use RedBeanPHP\Adapter\DBAdapter as DBAdapter;
8 use RedBeanPHP\QueryWriter as QueryWriter;
9 use RedBeanPHP\OODB as OODB;
10
11 /**
12  * Observers
13  *
14  * Tests the basic observer pattern used in RedBeanPHP.
15  *
16  * @file    RedUNIT/Base/Observers.php
17  * @desc    Tests the observer pattern in RedBeanPHP.
18  * @author  Gabor de Mooij and the RedBeanPHP Community
19  * @license New BSD/GPLv2
20  *
21  * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
22  * This source file is subject to the New BSD/GPLv2 License that is bundled
23  * with this source code in the file license.txt.
24  */
25 class Observers extends Base
26 {
27         /**
28          * Test RedBeanPHP observers.
29          *
30          * @return void
31          */
32         public function testObserverMechanism()
33         {
34                 $toolbox = R::getToolBox();
35                 $adapter = $toolbox->getDatabaseAdapter();
36                 $writer  = $toolbox->getWriter();
37                 $redbean = $toolbox->getRedBean();
38                 asrt( ( $adapter instanceof DBAdapter ), TRUE );
39                 asrt( ( $writer instanceof QueryWriter ), TRUE );
40                 asrt( ( $redbean instanceof OODB ), TRUE );
41                 $observable = new \ObservableMock();
42                 $observer   = new \ObserverMock();
43                 $observable->addEventListener( "event1", $observer );
44                 $observable->addEventListener( "event3", $observer );
45                 $observable->test( "event1", "testsignal1" );
46                 asrt( $observer->event, "event1" );
47                 asrt( $observer->info, "testsignal1" );
48                 $observable->test( "event2", "testsignal2" );
49                 asrt( $observer->event, "event1" );
50                 asrt( $observer->info, "testsignal1" );
51                 $observable->test( "event3", "testsignal3" );
52                 asrt( $observer->event, "event3" );
53                 asrt( $observer->info, "testsignal3" );
54         }
55 }