1+ <?php
2+
3+ namespace Tests \Acl \Auth ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Tests \Shared \Module ;
7+ use Tests \Shared \MyAuthorizer ;
8+ use Zend \Http \Request ;
9+ use Zend \Http \Response ;
10+ use Zend \Mvc \Acl \Enum \ServiceEnum ;
11+ use Zend \Mvc \Acl \Exceptions \AuthException ;
12+ use Zend \Mvc \Application ;
13+ use Zend \Mvc \MvcEvent ;
14+ use Zend \Mvc \Service \EventManagerFactory ;
15+ use Zend \ServiceManager \ServiceManager ;
16+
17+ class AuthorizatorTest extends TestCase
18+ {
19+ /**
20+ * @var Request
21+ */
22+ private $ request ;
23+
24+ /**
25+ * @var MvcEvent
26+ */
27+ private $ mvcEvent ;
28+
29+ /**
30+ * setup
31+ */
32+ public function setUp (): void
33+ {
34+ $ this ->request = new Request ();
35+
36+ $ serviceManager = new ServiceManager (include __DIR__ . '/../../Shared/module.config.php ' );
37+ $ serviceManager ->setFactory ('EventManager ' , new EventManagerFactory ());
38+ $ serviceManager ->setService ('Request ' , $ this ->request );
39+ $ serviceManager ->setService ('Response ' , new Response ());
40+ $ serviceManager ->setService (ServiceEnum::AUTHORIZATOR , new MyAuthorizer ());
41+
42+ $ this ->mvcEvent = new MvcEvent ();
43+ $ this ->mvcEvent ->setApplication (new Application ($ serviceManager ));
44+ }
45+
46+ public function testWhenAnAuthorizedRequestIsMade (): void
47+ {
48+ $ success = true ;
49+
50+ try
51+ {
52+ $ this ->request ->setUri ('/login ' );
53+ $ this ->mvcEvent ->setRequest ($ this ->request );
54+
55+ $ module = new Module ();
56+ $ module ->onDispatch ($ this ->mvcEvent );
57+ }
58+ catch (AuthException $ ex )
59+ {
60+ $ success = false ;
61+ }
62+
63+ $ this ->assertTrue ($ success );
64+ }
65+
66+ /**
67+ * @expectedException \Zend\Mvc\Acl\Exceptions\AuthException
68+ */
69+ public function testWhenAnUnauthorizedRequestIsMade (): void
70+ {
71+ $ this ->request ->setUri ('/notlogin ' );
72+ $ this ->mvcEvent ->setRequest ($ this ->request );
73+
74+ $ module = new Module ();
75+ $ module ->onDispatch ($ this ->mvcEvent );
76+ }
77+ }
0 commit comments