public function testResolveShouldPrependNamespaceWithHigherPriority() { $factory = m::mock('Krucas\\Permission\\Factory\\ValidatorFactoryInterface'); $factory->shouldReceive('make')->once()->with('\\Namespace\\Higher\\User\\Edit'); $resolver = new ObjectDriver($factory); $resolver->registerNamespace('Namespace', 0); $resolver->registerNamespace('Namespace\\Higher', 1); $resolver->getValidator('user.edit'); }
/** * Register the service provider. * * @return void */ public function register() { $this->app['config']->package('edvinaskrucas/permission', __DIR__ . '/../../../../config'); $this->app['permission'] = $this->app->share(function ($app) { $factory = new ValidatorFactory(); $factory->setContainer($app); $driver = new ObjectDriver($factory); $namespaces = $app['config']->get('permission::namespaces'); if (count($namespaces) > 0) { foreach ($namespaces as $namespace => $priority) { $driver->registerNamespace($namespace, $priority); } } $manager = new Manager($driver); return $manager; }); require_once __DIR__ . '/functions.php'; }