コード例 #1
0
ファイル: YamlTest.php プロジェクト: raphhh/balloon
 public function testWrite()
 {
     $data = [['key1' => 'value1'], ['key2' => 'value2']];
     $fileReader = new DummyFileReader();
     $yaml = new Yaml($fileReader, new Parser(), new Dumper(), 2);
     $yaml->write($data);
     $this->assertSame("-\n    key1: value1\n-\n    key2: value2\n", $fileReader->read());
 }
コード例 #2
0
 public function testImportWithDependenciesButComposerError()
 {
     $data = new DummyFileReader();
     $data->write('{
       "package": "raphhh/samurai-module-git",
       "description": "Git module",
       "dependencies": [
             {
                 "package": "dependency/1",
                 "version": "1"
             },
             {
                 "package": "dependency/2",
                 "version": "2",
                 "dependencies": [
                     {
                         "package": "dependency/1",
                         "version": "1"
                     }
               ]
             }
       ],
       "tasks": [
         "Samurai\\\\Git\\\\GitTask"
       ]
     }');
     $dependency1Data = new DummyFileReader();
     $dependency1Data->write('{
       "package": "dependency/1",
       "description": "dependency 1",
       "dependencies": [
       ],
       "tasks": [
       ]
     }');
     $dependency2Data = new DummyFileReader();
     $dependency2Data->write('{
       "package": "dependency/2",
       "description": "dependency 2",
       "dependencies": [
       ],
       "tasks": [
       ]
     }');
     $module = new Module();
     $module->setName('name');
     $module->setPackage('none/none');
     $module->setVersion('@dev');
     $module->setIsEnable(true);
     $modules = new Modules();
     $output = new BufferedOutput();
     $moduleManager = $this->getMockBuilder('Samurai\\Module\\ModuleManager')->disableOriginalConstructor()->getMock();
     $composer = $this->getMockBuilder('Samurai\\Project\\Composer\\Composer')->disableOriginalConstructor()->getMock();
     $balloonFactory = $this->getMockBuilder('Balloon\\Factory\\BalloonFactory')->disableOriginalConstructor()->getMock();
     $modulesSorter = $this->getMockBuilder('Samurai\\Module\\ModulesSorter')->disableOriginalConstructor()->getMock();
     $balloonFactory->expects($this->at(0))->method('create')->with('COMPOSER_HOME/vendor/none/none/.samurai.json')->will($this->returnValue((new BalloonFactory(new DummyFileReaderFactory($data)))->create('.json')));
     $composer->expects($this->at(0))->method('requirePackage')->with('none/none', '@dev', true)->will($this->returnValue(0));
     $composer->expects($this->at(2))->method('requirePackage')->with('dependency/1', '1', true)->will($this->returnValue(1));
     //error
     $composer->expects($this->exactly(1))->method('getHomePath')->will($this->returnValue('COMPOSER_HOME'));
     $moduleManager->expects($this->exactly(1))->method('add');
     $moduleManager->expects($this->never())->method('set')->with($this->identicalTo($modules));
     $moduleManager->expects($this->once())->method('clear');
     $moduleManager->expects($this->any())->method('getAll')->will($this->returnValue($modules));
     $modulesSorter->expects($this->never())->method('sort');
     $moduleProcedure = new ModuleProcedure($moduleManager, $composer, $balloonFactory, $modulesSorter);
     $moduleProcedure->setOutput($output);
     $this->assertFalse($moduleProcedure->import($module));
     $this->assertSame("Starting installation of none/none\nStarting installation of dependency/1\nAn error occurred during the installation of dependency/1\nRoll-backing installation of none/none\n", $output->fetch());
     $this->assertSame(['name' => 'name', 'description' => 'Git module', 'package' => 'none/none', 'version' => '@dev', 'source' => null, 'isEnable' => true, 'tasks' => ['Samurai\\Git\\GitTask'], 'dependencies' => [['name' => '', 'description' => '', 'package' => 'dependency/1', 'version' => '1', 'source' => '', 'isEnable' => true, 'tasks' => [], 'dependencies' => []], ['name' => '', 'description' => '', 'package' => 'dependency/2', 'version' => '2', 'source' => '', 'isEnable' => true, 'tasks' => [], 'dependencies' => []]]], $module->toArray());
 }