Example #1
0
 /**
  * Builds a Result from a DOM-Object
  *
  * @param DOMDocument $document
  * @return Robo47_DirectoryHasher_Result
  */
 public function buildResultFromDOM(DOMDocument $document)
 {
     $result = new Robo47_DirectoryHasher_Result();
     $xpath = new DOMXPath($document);
     $entries = $xpath->query('//files/file');
     foreach ($entries as $entry) {
         $filenameAttr = $entry->attributes->getNamedItem('name');
         if ($filenameAttr !== null) {
             $fileResult = new Robo47_DirectoryHasher_Result_File($filenameAttr->value);
             foreach ($this->getHashesFromFileNode($entry) as $name => $value) {
                 $fileResult->addHash($name, $value);
             }
             $result->addFileResult($fileResult);
         }
     }
     return $result;
 }
 /**
  * Compares two Results
  *
  * @param Robo47_DirectoryHasher_Result $old
  * @param Robo47_DirectoryHasher_Result $new
  * @return Robo47_DirectoryHasher_Comparator_Result
  */
 public function compare(Robo47_DirectoryHasher_Result $old, Robo47_DirectoryHasher_Result $new)
 {
     $result = new Robo47_DirectoryHasher_Comparator_Result();
     foreach ($old->getIterator() as $fileResult) {
         /* @var $fileResult Robo47_DirectoryHasher_Result_File */
         if (!$new->hasFileResultFor($fileResult->getFilename())) {
             $result->addDifference(new Robo47_DirectoryHasher_Comparator_Difference_MissingFile($fileResult->getFilename()));
         } else {
             $result->addDifferences($this->getHashDifferences($fileResult, $new->getFileResultFor($fileResult->getFilename())));
         }
     }
     foreach ($new->getIterator() as $fileResult) {
         /* @var $fileResult Robo47_DirectoryHasher_Result_File */
         if (!$old->hasFileResultFor($fileResult->getFilename())) {
             $result->addDifference(new Robo47_DirectoryHasher_Comparator_Difference_NewFile($fileResult->getFilename()));
         }
     }
     return $result;
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function getFileResults()
 {
     $this->loadSources();
     return $this->result->getIterator()->getArrayCopy();
 }
 /**
  * Fetches files from source
  *
  * @return Robo47_DirectoryHasher_Result
  */
 public function run()
 {
     $this->result->addFileResults($this->source->getFileResults());
     $this->hasher->addHashsToResult($this->result);
 }
 /**
  * @covers Robo47_DirectoryHasher_Result::getFileResultFor
  */
 public function testGetFileResultFor()
 {
     $result = new Robo47_DirectoryHasher_Result(array($file = new Robo47_DirectoryHasher_Result_File('/baa/foo.php')));
     $this->assertSame($file, $result->getFileResultFor('/baa/foo.php'));
     $this->assertNull($result->getFileResultFor('/baa/blub.php'));
 }