/**
  * @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());
 }
 /**
  * @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;
 }