3 namespace RedUNIT\Base;
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;
14 * Tests the basic observer pattern used in RedBeanPHP.
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
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.
25 class Observers extends Base
28 * Test RedBeanPHP observers.
32 public function testObserverMechanism()
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" );