/**
  * @test
  */
 public function parse()
 {
     vfsStream::newFile('file1', '644')->setContent("test file1")->at($this->root);
     vfsStream::newFile('file2', '644')->setContent("test file1")->at($this->root);
     $parser = new DirectoryParser();
     $this->assertEquals([['add', 'file1', 'file1'], ['add', 'file2', 'file2']], $parser->parse(vfsStream::url('root')));
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $parser = new DirectoryParser();
     $files = $parser->parse($input->getArgument('folder'));
     if ($ignores = $input->getArgument('ignores')) {
         $ignores = explode(',', $ignores);
         $filter = new Filter();
         $files = $filter->getFiltered($files, $ignores);
     }
     $dumper = new FileDumper($input->getArgument('directives'));
     $dumper->dump($files);
     $output->writeln('<info>Directives are dumped successfully!</info>');
 }