/** * @covers Robo47_DirectoryHasher_Result_Factory_Xml::buildResultFromDOM * @covers Robo47_DirectoryHasher_Result_Factory_Xml::buildResultFromFile * @covers Robo47_DirectoryHasher_Result_Factory_Xml::getHashesFromFileNode */ public function testbuildResultFromFile() { $factory = new Robo47_DirectoryHasher_Result_Factory_Xml(); $result = $factory->buildResultFromFile(dirname(__FILE__) . '/../../../../fixtures/result/fixture1.xml'); $this->assertCount(1, $result); $resultFile = $result->getIterator()->current(); /* @var $resultFile Robo47_DirectoryHasher_Result_File */ $this->assertEquals('/some/path/Xml.php', $resultFile->getFilename()); $hashes = $resultFile->getHashes(); $this->assertCount(4, $hashes); $this->assertArrayHasKey('md5', $hashes); $this->assertArrayHasKey('sha1', $hashes); $this->assertArrayHasKey('size', $hashes); $this->assertArrayHasKey('mtime', $hashes); $this->assertEquals('1a2a2fdad558101c11919fd3ceff48c1', $hashes['md5']); $this->assertEquals('9b41feb8a6c885e62afaf389e46646d742e67b0b', $hashes['sha1']); $this->assertEquals('1000', $hashes['size']); $this->assertEquals('1326082206', $hashes['mtime']); }
<?php $time = microtime(true); require_once dirname(__FILE__) . '/../src/Robo47/DirectoryHasher/Autoloader.php'; Robo47_DirectoryHasher_Autoloader::register(); $oldResultFile = realpath(dirname(__FILE__) . '/data/') . '/old.xml'; $newResultFile = realpath(dirname(__FILE__) . '/data/') . '/new.xml'; $factory = new Robo47_DirectoryHasher_Result_Factory_Xml(); $old = $factory->buildResultFromFile($oldResultFile); $new = $factory->buildResultFromFile($newResultFile); echo 'DirectoryHasher' . PHP_EOL; $comparator = new Robo47_DirectoryHasher_Comparator(); echo PHP_EOL . 'Comparing results' . PHP_EOL; $result = $comparator->compare($old, $new); $differences = $result->getDifferences(); $i = 1; echo PHP_EOL . 'Found ' . count($differences) . ' differences' . PHP_EOL . PHP_EOL; foreach ($differences as $difference) { /* @var $difference Robo47_DirectoryHasher_Comparator_Difference_Interface */ echo $i . ')' . PHP_EOL; echo $difference->toString() . PHP_EOL . PHP_EOL; $i++; } $runtime = number_format(microtime(true) - $time, 4); $memory = number_format(memory_get_peak_usage(true) / (1024 * 1024), 2); echo PHP_EOL . 'Time: ' . $runtime . ' seconds'; echo ', Memory: ' . $memory . 'Mb' . PHP_EOL;
/** * Checks for differences between two xml files and returns array with differences * * @param string $old Path to old xml-file * @param string $new Path to new xml-file * @return array */ function check_differences($old, $new) { $factory = new Robo47_DirectoryHasher_Result_Factory_Xml(); $comparator = new Robo47_DirectoryHasher_Comparator(); return $comparator->compare($factory->buildResultFromFile($old), $factory->buildResultFromFile($new))->getDifferences(); }