/** * @dataProvider getRouteFirewallParameters */ public function testRouteFirewall($rules, $checks) { $firewall = new RouteFirewall($rules); $mockRbac = $this->getMock('ZfcRbac\\Service\\Rbac'); $mockRbac->expects($this->any())->method('hasRole')->will($this->returnCallback(function ($val) { if ($val === array('guest')) { return true; } return false; })); $mockRbac->expects($this->any())->method('isGranted')->will($this->returnCallback(function ($val) { if ($val === 'SECRET_PERMISSION') { return true; } return false; })); $firewall->setRbac($mockRbac); foreach ($checks as $check) { $this->assertEquals($check['result'], $firewall->isGranted($check['resource'])); } }