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