/**
  * @covers Robo47_DirectoryHasher_Result_File::getHashes
  */
 public function testGetHashes()
 {
     $file = new Robo47_DirectoryHasher_Result_File('/some/file.php');
     $file->addHash('md5', 'foo');
     $file->addHash('sha1', 'blub');
     $this->assertSame(array('md5' => 'foo', 'sha1' => 'blub'), $file->getHashes());
 }
 /**
  * {@inheritdoc}
  */
 public function addHashsToFileResult(Robo47_DirectoryHasher_Result_File $file)
 {
     $hashs = $this->getHashsForFile($file->getFilename());
     foreach ($hashs as $name => $value) {
         $file->addHash($name, $value);
     }
     return $this;
 }
 /**
  * @covers Robo47_DirectoryHasher_Hasher_Multi::addHashsToResult
  */
 public function testAddHashsToResult()
 {
     $hasher = new Robo47_DirectoryHasher_Hasher_Multi(array(new Robo47_DirectoryHasher_Hasher_SHA1(), new Robo47_DirectoryHasher_Hasher_MD5()));
     $file = dirname(__FILE__) . '/../../../fixtures/files/file1.php';
     $fileResult = new Robo47_DirectoryHasher_Result_File($file);
     $result = new Robo47_DirectoryHasher_Result(array($fileResult));
     $hasher->addHashsToResult($result);
     $this->assertEquals(array('sha1' => 'da39a3ee5e6b4b0d3255bfef95601890afd80709', 'md5' => 'd41d8cd98f00b204e9800998ecf8427e'), $fileResult->getHashes());
 }
 /**
  * @covers Robo47_DirectoryHasher_Hasher_Abstract::addHashsToResult
  */
 public function testAddHashsToResult()
 {
     $hasher = new nonAbstract();
     $file = new Robo47_DirectoryHasher_Result_File(__FILE__);
     $result = new Robo47_DirectoryHasher_Result(array($file));
     $hasher->addHashsToResult($result);
     $hashes = $file->getHashes();
     $this->assertArrayHasKey('nonAbstract', $hashes);
 }
 /**
  * Returns differences of hashes
  *
  * @param Robo47_DirectoryHasher_Result_File $oldFileResult
  * @param Robo47_DirectoryHasher_Result_File $newFileResult
  * @return \Robo47_DirectoryHasher_Comparator_Difference_WrongHash
  */
 public function getHashDifferences(Robo47_DirectoryHasher_Result_File $oldFileResult, Robo47_DirectoryHasher_Result_File $newFileResult)
 {
     $differences = array();
     $oldHashes = $oldFileResult->getHashes();
     $newHashes = $newFileResult->getHashes();
     foreach ($oldHashes as $hashname => $value) {
         if (!isset($newHashes[$hashname])) {
             $differences[] = new Robo47_DirectoryHasher_Comparator_Difference_MissingHash($oldFileResult->getFilename(), $hashname);
         } elseif ($oldHashes[$hashname] !== $newHashes[$hashname]) {
             $differences[] = new Robo47_DirectoryHasher_Comparator_Difference_WrongHash($oldFileResult->getFilename(), $hashname, $newHashes[$hashname], $oldHashes[$hashname]);
         }
     }
     return $differences;
 }
示例#6
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;
 }