From 1c052abadfcf74c4a2e2a7fff877c969e1bdea0e Mon Sep 17 00:00:00 2001 From: James Brooks Date: Thu, 14 Jun 2018 20:57:13 +0100 Subject: [PATCH] Remove Modules system --- .../{Modules => }/ComponentsComposer.php | 2 +- .../{Modules => }/MetricsComposer.php | 2 +- app/Composers/ModuleComposer.php | 77 -------- .../{Modules => }/ScheduledComposer.php | 2 +- .../{Modules => }/StatusComposer.php | 2 +- .../{Modules => }/StickiedComposer.php | 2 +- .../{Modules => }/TimelineComposer.php | 2 +- .../Providers/ComposerServiceProvider.php | 26 ++- .../Providers/ModuleServiceProvider.php | 95 ---------- app/Services/Modules/Manager.php | 80 --------- app/Services/Modules/Renderer.php | 75 -------- config/app.php | 1 - .../Providers/ModuleServiceProviderTest.php | 25 --- tests/Services/Modules/ManagerTest.php | 166 ------------------ tests/Services/Modules/RendererTest.php | 143 --------------- 15 files changed, 18 insertions(+), 682 deletions(-) rename app/Composers/{Modules => }/ComponentsComposer.php (97%) rename app/Composers/{Modules => }/MetricsComposer.php (97%) delete mode 100644 app/Composers/ModuleComposer.php rename app/Composers/{Modules => }/ScheduledComposer.php (94%) rename app/Composers/{Modules => }/StatusComposer.php (96%) rename app/Composers/{Modules => }/StickiedComposer.php (96%) rename app/Composers/{Modules => }/TimelineComposer.php (93%) delete mode 100644 app/Foundation/Providers/ModuleServiceProvider.php delete mode 100644 app/Services/Modules/Manager.php delete mode 100644 app/Services/Modules/Renderer.php delete mode 100644 tests/Foundation/Providers/ModuleServiceProviderTest.php delete mode 100644 tests/Services/Modules/ManagerTest.php delete mode 100644 tests/Services/Modules/RendererTest.php diff --git a/app/Composers/Modules/ComponentsComposer.php b/app/Composers/ComponentsComposer.php similarity index 97% rename from app/Composers/Modules/ComponentsComposer.php rename to app/Composers/ComponentsComposer.php index 10555c21..7e62715c 100644 --- a/app/Composers/Modules/ComponentsComposer.php +++ b/app/Composers/ComponentsComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; diff --git a/app/Composers/Modules/MetricsComposer.php b/app/Composers/MetricsComposer.php similarity index 97% rename from app/Composers/Modules/MetricsComposer.php rename to app/Composers/MetricsComposer.php index ba49156a..e6e32e9f 100644 --- a/app/Composers/Modules/MetricsComposer.php +++ b/app/Composers/MetricsComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Metric; use Illuminate\Contracts\Auth\Guard; diff --git a/app/Composers/ModuleComposer.php b/app/Composers/ModuleComposer.php deleted file mode 100644 index b31af295..00000000 --- a/app/Composers/ModuleComposer.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @author James Brooks - */ -class ModuleComposer -{ - /** - * The application instance. - * - * @var \Illuminate\Contracts\Foundation\Application - */ - protected $app; - - /** - * The modules manager instance. - * - * @var \CachetHQ\Cachet\Services\Modules\Manager - */ - protected $manager; - - /** - * Create a new modules composer. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param \CachetHQ\Cachet\Services\Modules\Manager $manager - * - * @return void - */ - public function __construct(Application $app, Manager $manager) - { - $this->app = $app; - $this->manager = $manager; - } - - /** - * Bind data to the view. - * - * @param \Illuminate\Contracts\View\View $view - * - * @return void - */ - public function compose(View $view) - { - $key = $view->getName(); - - $view->with('view', $key); - - $modules = "view.modules: {$key}"; - $groups = "view.groups: {$key}"; - - $modules = $this->app->bound($modules) ? $this->app[$modules] : []; - $groups = $this->app->bound($groups) ? $this->app[$groups] : []; - - $modules = $this->manager->groupModules($modules, $groups); - - $view->withModules($modules); - } -} diff --git a/app/Composers/Modules/ScheduledComposer.php b/app/Composers/ScheduledComposer.php similarity index 94% rename from app/Composers/Modules/ScheduledComposer.php rename to app/Composers/ScheduledComposer.php index 642984f5..ab8cd380 100644 --- a/app/Composers/Modules/ScheduledComposer.php +++ b/app/Composers/ScheduledComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Schedule; use Illuminate\Contracts\View\View; diff --git a/app/Composers/Modules/StatusComposer.php b/app/Composers/StatusComposer.php similarity index 96% rename from app/Composers/Modules/StatusComposer.php rename to app/Composers/StatusComposer.php index 6449bfe5..d4071a37 100644 --- a/app/Composers/Modules/StatusComposer.php +++ b/app/Composers/StatusComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Integrations\Contracts\System; use Illuminate\Contracts\View\View; diff --git a/app/Composers/Modules/StickiedComposer.php b/app/Composers/StickiedComposer.php similarity index 96% rename from app/Composers/Modules/StickiedComposer.php rename to app/Composers/StickiedComposer.php index 880458ab..82e357f3 100644 --- a/app/Composers/Modules/StickiedComposer.php +++ b/app/Composers/StickiedComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Services\Dates\DateFactory; diff --git a/app/Composers/Modules/TimelineComposer.php b/app/Composers/TimelineComposer.php similarity index 93% rename from app/Composers/Modules/TimelineComposer.php rename to app/Composers/TimelineComposer.php index 7064a00c..0206a2dc 100644 --- a/app/Composers/Modules/TimelineComposer.php +++ b/app/Composers/TimelineComposer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace CachetHQ\Cachet\Composers\Modules; +namespace CachetHQ\Cachet\Composers; use Illuminate\Contracts\View\View; diff --git a/app/Foundation/Providers/ComposerServiceProvider.php b/app/Foundation/Providers/ComposerServiceProvider.php index 19ca8fc2..bd762dd4 100644 --- a/app/Foundation/Providers/ComposerServiceProvider.php +++ b/app/Foundation/Providers/ComposerServiceProvider.php @@ -12,17 +12,16 @@ namespace CachetHQ\Cachet\Foundation\Providers; use CachetHQ\Cachet\Composers\AppComposer; +use CachetHQ\Cachet\Composers\ComponentsComposer; use CachetHQ\Cachet\Composers\CurrentUserComposer; use CachetHQ\Cachet\Composers\DashboardComposer; -use CachetHQ\Cachet\Composers\ModuleComposer; -use CachetHQ\Cachet\Composers\Modules\ComponentsComposer as ComponentsModuleComposer; -use CachetHQ\Cachet\Composers\Modules\MetricsComposer as MetricsModuleComposer; -use CachetHQ\Cachet\Composers\Modules\ScheduledComposer as ScheduledModuleComposer; -use CachetHQ\Cachet\Composers\Modules\StatusComposer as StatusModuleComposer; -use CachetHQ\Cachet\Composers\Modules\StickiedComposer as StickiedModuleComposer; -use CachetHQ\Cachet\Composers\Modules\TimelineComposer as TimelineModuleComposer; +use CachetHQ\Cachet\Composers\MetricsComposer; +use CachetHQ\Cachet\Composers\ScheduledComposer; use CachetHQ\Cachet\Composers\SettingsComposer; +use CachetHQ\Cachet\Composers\StatusComposer; +use CachetHQ\Cachet\Composers\StickiedComposer; use CachetHQ\Cachet\Composers\ThemeComposer; +use CachetHQ\Cachet\Composers\TimelineComposer; use CachetHQ\Cachet\Composers\TimezoneLocaleComposer; use Illuminate\Contracts\View\Factory; use Illuminate\Support\ServiceProvider; @@ -42,13 +41,12 @@ class ComposerServiceProvider extends ServiceProvider $factory->composer('dashboard.*', DashboardComposer::class); $factory->composer(['setup.*', 'dashboard.settings.localization'], TimezoneLocaleComposer::class); - $factory->composer('*', ModuleComposer::class); - $factory->composer('partials.modules.components', ComponentsModuleComposer::class); - $factory->composer('partials.modules.metrics', MetricsModuleComposer::class); - $factory->composer('partials.modules.stickied', StickiedModuleComposer::class); - $factory->composer('partials.modules.scheduled', ScheduledModuleComposer::class); - $factory->composer('partials.modules.status', StatusModuleComposer::class); - $factory->composer('partials.modules.timeline', TimelineModuleComposer::class); + $factory->composer('partials.modules.components', ComponentsComposer::class); + $factory->composer('partials.modules.metrics', MetricsComposer::class); + $factory->composer('partials.modules.stickied', StickiedComposer::class); + $factory->composer('partials.modules.scheduled', ScheduledComposer::class); + $factory->composer('partials.modules.status', StatusComposer::class); + $factory->composer('partials.modules.timeline', TimelineComposer::class); $factory->composer(['dashboard.settings.mail', 'setup.*'], SettingsComposer::class); } diff --git a/app/Foundation/Providers/ModuleServiceProvider.php b/app/Foundation/Providers/ModuleServiceProvider.php deleted file mode 100644 index b4181c61..00000000 --- a/app/Foundation/Providers/ModuleServiceProvider.php +++ /dev/null @@ -1,95 +0,0 @@ - [ - ['group' => 'messages', 'partial' => 'partials.modules.messages'], - ['group' => 'status', 'partial' => 'partials.modules.status'], - ['group' => 'components', 'partial' => 'partials.modules.components'], - ['group' => 'metrics', 'partial' => 'partials.modules.metrics'], - ['group' => 'stickied', 'partial' => 'partials.modules.stickied'], - ['group' => 'scheduled', 'partial' => 'partials.modules.scheduled'], - ['group' => 'timeline', 'partial' => 'partials.modules.timeline'], - ], - ]; - - /** - * The group definitions. - * - * @var array - */ - protected $groups = [ - 'index' => [ - 'messages' => 10000, - 'status' => 20000, - 'components' => 30000, - 'metrics' => 40000, - 'scheduled' => 50000, - 'stickied' => 60000, - 'timeline' => 70000, - ], - ]; - - /** - * Boot the service provider. - * - * @param \Illuminate\View\Compilers\BladeCompiler $blade - */ - public function boot(BladeCompiler $blade) - { - $blade->directive('modules', function ($group) { - return sprintf( - 'call(\'%s@%s\', [ - \'factory\' => $__env, - \'data\' => array_except(get_defined_vars(), array(\'__data\', \'__path\')), - \'modules\' => $modules, - \'group\' => %s, - ]); ?>', - ModulesRenderer::class, - 'renderModules', - empty($group) ? 'null' : $group - ); - }); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - foreach ($this->modules as $key => $modules) { - $this->app->singleton("view.modules: {$key}", function () use ($modules) { - return $modules; - }); - } - - foreach ($this->groups as $key => $groups) { - $this->app->singleton("view.groups: {$key}", function () use ($groups) { - return $groups; - }); - } - } -} diff --git a/app/Services/Modules/Manager.php b/app/Services/Modules/Manager.php deleted file mode 100644 index 61a276c6..00000000 --- a/app/Services/Modules/Manager.php +++ /dev/null @@ -1,80 +0,0 @@ - - */ -class Manager -{ - /** - * Groups the modules. - * - * @param array $modules - * @param array $groups - * - * @return array - */ - public function groupModules(array $modules, array $groups = []) - { - $grouped = []; - $length = count($modules); - foreach ($modules as $order => $module) { - if (!is_array($module) || empty($module['group'])) { - $order = array_get($module, 'order', PHP_INT_MAX - $length + $order); - - $grouped[] = [$module, 'order' => $order]; - - continue; - } - - $group = $module['group']; - if (empty($grouped[$group])) { - $grouped[$group] = [$module]; - - continue; - } - - $grouped[$group][] = $module; - } - - foreach ($groups as $group => $order) { - if (empty($grouped[$group])) { - continue; - } - - $grouped[$group]['order'] = $order; - } - - return $grouped; - } - - /** - * Orders the modules. - * - * @param array $modules - * - * @return array - */ - public function orderModules($modules) - { - $modules = array_numeric_sort($modules); - - foreach ($modules as $group => $subModules) { - $modules[$group] = array_numeric_sort($subModules); - } - - return $modules; - } -} diff --git a/app/Services/Modules/Renderer.php b/app/Services/Modules/Renderer.php deleted file mode 100644 index b8fe3df3..00000000 --- a/app/Services/Modules/Renderer.php +++ /dev/null @@ -1,75 +0,0 @@ - - */ -class Renderer -{ - /** - * Render the modules. - * - * @param \Illuminate\Contracts\View\Factory $factory - * @param array $data - * @param array $modules - * @param string|null $group - * - * @return string - */ - public function renderModules(Factory $factory, array $data, array $modules, $group = null) - { - if ($group !== null) { - if (empty($modules[$group])) { - return ''; - } - - return $this->renderModulesGroup($factory, $data, $modules[$group]); - } - - return array_reduce( - array_numeric_sort($modules), - function ($reduce, $module) use ($factory, $data) { - return $reduce.$this->renderModulesGroup($factory, $data, $module); - }, - '' - ); - } - - /** - * Render a group of modules. - * - * @param \Illuminate\Contracts\View\Factory $factory - * @param array $data - * @param array $modules - * - * @return string - */ - protected function renderModulesGroup(Factory $factory, array $data, array $modules) - { - return array_reduce( - array_numeric_sort($modules), - function ($reduce, $module) use ($factory, $data) { - if (empty($module['partial'])) { - return $reduce; - } - - return $reduce.$factory->make($module['partial'], $data)->render(); - }, - '' - ); - } -} diff --git a/config/app.php b/config/app.php index 4b767530..20fa2a0e 100644 --- a/config/app.php +++ b/config/app.php @@ -202,7 +202,6 @@ return [ CachetHQ\Cachet\Foundation\Providers\ConfigServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\EventServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\IntegrationServiceProvider::class, - CachetHQ\Cachet\Foundation\Providers\ModuleServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\RepositoryServiceProvider::class, CachetHQ\Cachet\Foundation\Providers\RouteServiceProvider::class, diff --git a/tests/Foundation/Providers/ModuleServiceProviderTest.php b/tests/Foundation/Providers/ModuleServiceProviderTest.php deleted file mode 100644 index b8ff49e6..00000000 --- a/tests/Foundation/Providers/ModuleServiceProviderTest.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class ModuleServiceProviderTest extends AbstractTestCase -{ - use ServiceProviderTrait; -} diff --git a/tests/Services/Modules/ManagerTest.php b/tests/Services/Modules/ManagerTest.php deleted file mode 100644 index d5b66199..00000000 --- a/tests/Services/Modules/ManagerTest.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class ManagerTest extends AbstractTestCase -{ - public function testGroupNoModules() - { - $manager = m::mock('CachetHQ\Cachet\Services\Modules\Manager[groupModules]'); - $manager->shouldReceive('groupModules')->once()->passthru(); - - $grouped = $manager->groupModules([]); - - $this->assertSame([], $grouped); - } - - public function testGroupModulesNoGroups() - { - $manager = m::mock('CachetHQ\Cachet\Services\Modules\Manager[groupModules]'); - $manager->shouldReceive('groupModules')->once()->passthru(); - - $grouped = $manager->groupModules($this->getModules(), []); - - $this->assertSame($this->getGroupedModules(), $grouped); - } - - public function testGroupModules() - { - $manager = m::mock('CachetHQ\Cachet\Services\Modules\Manager[groupModules]'); - $manager->shouldReceive('groupModules')->once()->passthru(); - - $grouped = $manager->groupModules($this->getModules(), $this->getModuleGroups()); - - $this->assertSame($this->getGroupedModulesWithOrders(), $grouped); - } - - public function testOrderModules() - { - $manager = m::mock('CachetHQ\Cachet\Services\Modules\Manager[orderModules]'); - $manager->shouldReceive('orderModules')->once()->passthru(); - - $ordered = $manager->orderModules($this->getGroupedModules()); - - $this->assertSame($this->getOrderedModules(), $ordered); - } - - public function testOrderModulesWithOrders() - { - $manager = m::mock('CachetHQ\Cachet\Services\Modules\Manager[orderModules]'); - $manager->shouldReceive('orderModules')->once()->passthru(); - - $ordered = $manager->orderModules($this->getGroupedModulesWithOrders()); - - $this->assertSame($this->getOrderedModulesWithOrders(), $ordered); - } - - protected function getModules() - { - return [ - ['group' => 'two', 'partial' => 'partials.two.a'], - ['partial' => 'partials.a', 'order' => 8], - ['group' => 'one', 'partial' => 'partials.one.c'], - ['partial' => 'partials.c'], - ['group' => 'one', 'partial' => 'partials.one.a', 'order' => 1], - ['group' => 'one', 'partial' => 'partials.one.b', 'order' => 2], - ['partial' => 'partials.b', 'order' => 15], - ]; - } - - protected function getModuleGroups() - { - return [ - 'one' => 1, - 'two' => 2, - ]; - } - - protected function getGroupedModules() - { - return [ - 'two' => [ - ['group' => 'two', 'partial' => 'partials.two.a'], - ], - [['partial' => 'partials.a', 'order' => 8], 'order' => 8], - 'one' => [ - ['group' => 'one', 'partial' => 'partials.one.c'], - ['group' => 'one', 'partial' => 'partials.one.a', 'order' => 1], - ['group' => 'one', 'partial' => 'partials.one.b', 'order' => 2], - ], - [['partial' => 'partials.c'], 'order' => PHP_INT_MAX - 4], - [['partial' => 'partials.b', 'order' => 15], 'order' => 15], - ]; - } - - protected function getGroupedModulesWithOrders() - { - return [ - 'two' => [ - ['group' => 'two', 'partial' => 'partials.two.a'], - 'order' => 2, - ], - [['partial' => 'partials.a', 'order' => 8], 'order' => 8], - 'one' => [ - ['group' => 'one', 'partial' => 'partials.one.c'], - ['group' => 'one', 'partial' => 'partials.one.a', 'order' => 1], - ['group' => 'one', 'partial' => 'partials.one.b', 'order' => 2], - 'order' => 1, - ], - [['partial' => 'partials.c'], 'order' => PHP_INT_MAX - 4], - [['partial' => 'partials.b', 'order' => 15], 'order' => 15], - ]; - } - - protected function getOrderedModules() - { - return [ - [['partial' => 'partials.a', 'order' => 8], 'order' => 8], - 2 => [['partial' => 'partials.b', 'order' => 15], 'order' => 15], - 1 => [['partial' => 'partials.c'], 'order' => PHP_INT_MAX - 4], - 'two' => [ - ['group' => 'two', 'partial' => 'partials.two.a'], - ], - 'one' => [ - 1 => ['group' => 'one', 'partial' => 'partials.one.a', 'order' => 1], - 2 => ['group' => 'one', 'partial' => 'partials.one.b', 'order' => 2], - 0 => ['group' => 'one', 'partial' => 'partials.one.c'], - ], - ]; - } - - protected function getOrderedModulesWithOrders() - { - return [ - 'one' => [ - 1 => ['group' => 'one', 'partial' => 'partials.one.a', 'order' => 1], - 2 => ['group' => 'one', 'partial' => 'partials.one.b', 'order' => 2], - 0 => ['group' => 'one', 'partial' => 'partials.one.c'], - 'order' => 1, - ], - 'two' => [ - ['group' => 'two', 'partial' => 'partials.two.a'], - 'order' => 2, - ], - [['partial' => 'partials.a', 'order' => 8], 'order' => 8], - 2 => [['partial' => 'partials.b', 'order' => 15], 'order' => 15], - 1 => [['partial' => 'partials.c'], 'order' => PHP_INT_MAX - 4], - ]; - } -} diff --git a/tests/Services/Modules/RendererTest.php b/tests/Services/Modules/RendererTest.php deleted file mode 100644 index 46ca1dac..00000000 --- a/tests/Services/Modules/RendererTest.php +++ /dev/null @@ -1,143 +0,0 @@ - - */ -class RendererTest extends AbstractTestCase -{ - public function testRenderNoModules() - { - $renderer = m::mock('CachetHQ\Cachet\Services\Modules\Renderer[renderModules]'); - $renderer->shouldReceive('renderModules')->once()->passthru(); - - $output = $renderer->renderModules( - $this->getFactory(), - [], - [], - null - ); - - $this->assertSame('', $output); - } - - public function testRenderNonExistentModulesGroup() - { - $renderer = m::mock('CachetHQ\Cachet\Services\Modules\Renderer[renderModules]'); - $renderer->shouldReceive('renderModules')->once()->passthru(); - - $output = $renderer->renderModules( - $this->getFactory(), - [], - $this->getModules(), - 'non-existent group' - ); - - $this->assertSame('', $output); - } - - public function testRenderModules() - { - $renderer = m::mock('CachetHQ\Cachet\Services\Modules\Renderer[renderModules]'); - $renderer->shouldReceive('renderModules')->once()->passthru(); - - $factory = $this->getFactory([ - 'partial.a', 'partial.b', 'partial.c', - 'partial.one.a', 'partial.one.b', 'partial.one.c', - 'partial.two.a', - 'partial.three.a', 'partial.three.b', - ]); - - $output = $renderer->renderModules( - $factory, - ['a' => 'b', 'c' => 'd'], - $this->getModules(), - null - ); - - $this->assertSame('partial.apartial.one.apartial.one.bpartial.one.cpartial.two.apartial.bpartial.cpartial.three.apartial.three.b', $output); - } - - public function testRenderModuleGroups() - { - $renderer = m::mock('CachetHQ\Cachet\Services\Modules\Renderer[renderModules]'); - $renderer->shouldReceive('renderModules')->once()->passthru(); - - $factory = $this->getFactory([ - 'partial.one.a', 'partial.one.b', 'partial.one.c', - ]); - - $output = $renderer->renderModules( - $factory, - ['a' => 'b', 'c' => 'd'], - $this->getModules(), - 'one' - ); - - $this->assertSame('partial.one.apartial.one.bpartial.one.c', $output); - } - - protected function getModules() - { - return [ - 'two' => [ - 'order' => 3, - ['partial' => 'partial.two.a'], - ], - [ - ['partial' => 'partial.c'], - ['partial' => 'partial.b', 'order' => 1], - ], - [ - 'order' => 1, - ['partial' => 'partial.a'], - ], - 'one' => [ - 'order' => 2, - ['partial' => 'partial.one.c'], - ['partial' => 'partial.one.a', 'order' => 1], - ['partial' => 'partial.one.b', 'order' => 2], - ], - 'three' => [ - ['partial' => 'partial.three.a'], - ['partial' => 'partial.three.b'], - ], - ]; - } - - protected function getFactory($views = []) - { - $factory = m::mock('Illuminate\View\Factory[make]', $this->getFactoryArgs()); - - foreach ($views as $view) { - $factory->shouldReceive('make')->once()->with($view, ['a' => 'b', 'c' => 'd'])->andReturn($mockView = m::mock('StdClass')); - $mockView->shouldReceive('render')->once()->andReturn($view); - } - - return $factory; - } - - protected function getFactoryArgs() - { - return [ - m::mock('Illuminate\View\Engines\EngineResolver'), - m::mock('Illuminate\View\ViewFinderInterface'), - m::mock('Illuminate\Contracts\Events\Dispatcher'), - ]; - } -}