public function testMakesByTypeThrowsExceptionWhenCustomPermissionIsNotPermission() { list($auth, $routes, $repo) = $this->getMocks(); $instance = new Factory($auth, $routes, $repo); $instance->extend('custom', function ($target, $user, $registered) { return new \stdClass(); }); $mockUser = m::mock('Xpressengine\\Member\\Entities\\MemberEntityInterface'); $auth->shouldReceive('user')->andReturn($mockUser); $mockRegistered1 = m::mock('Xpressengine\\Permission\\Registered'); $mockRegistered1->name = 'plugin'; $mockRegistered2 = m::mock('Xpressengine\\Permission\\Registered'); $mockRegistered2->name = 'plugin.board'; $mockRegistered2->shouldReceive('addParent'); $repo->shouldReceive('fetchByType')->once()->with('default', 'custom')->andReturn([$mockRegistered1, $mockRegistered2]); try { $permissions = $instance->makesByType('custom'); $this->assertTrue(false); } catch (\Exception $e) { $this->assertInstanceOf('Xpressengine\\Permission\\Exceptions\\NotMatchedInstanceException', $e); } }
/** * getMenuPermissions * * @return MenuPermission[] * @throws \Xpressengine\Permission\Exceptions\WrongInstanceException */ public function getMenuPermissions() { if (count(static::$permissions) == 0) { static::$permissions = $this->permission->makesByType('menu'); } return static::$permissions; }