/** @test */
 public function it_returns_valid_module_directory()
 {
     $this->createModuleMock();
     $this->module->shouldReceive('name')->once()->withNoArgs()->passthru();
     $this->config->shouldReceive('directory')->once()->withNoArgs()->andReturn('modules/namespace//');
     $this->assertSame('modules/namespace' . DIRECTORY_SEPARATOR . $this->name, $this->module->directory());
 }
 /**
  * Creates single file
  *
  * @param Module $module
  * @param string $sourceFile
  * @param string $destinationFile
  * @param array $replacements
  *
  * @throws Exception
  */
 protected function createFile(Module $module, $sourceFile, $destinationFile, array $replacements = [])
 {
     $result = $this->laravel['files']->put($module->directory() . DIRECTORY_SEPARATOR . $destinationFile, $this->replace($this->laravel['files']->get($sourceFile), $module, $replacements));
     if ($result === false) {
         throw new Exception("[Module {$module->name()}] Cannot create file {$destinationFile}");
     }
     $this->line("[Module {$module->name()}] Created file {$destinationFile}");
 }