tmpDir = sys_get_temp_dir() . '/resourceWatcher-tests'; $this->fs = new Filesystem(); $this->fs->mkdir($this->tmpDir); } public function tearDown() { $this->fs->remove($this->tmpDir); } public function testInitializeMustWarmUpTheCacheInCaseItIsCold() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $cacheMemory = new ResourceCacheMemory(); $contentHashCrc32 = new Crc32ContentHash(); $resourceWatcher = new ResourceWatcher($cacheMemory, $finder, $contentHashCrc32); $resourceWatcher->initialize(); $this->assertTrue($cacheMemory->isInitialized()); } public function testHasChangesMustReturnFalseWithColdCache() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $result = $resourceWatcher->findChanges(); $this->assertFalse($result->hasChanges()); } public function testHasChangesMustReturnTrueWhenNewFile() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $resourceWatcher->findChanges(); $this->fs->dumpFile($this->tmpDir . '/file1.txt', 'test'); $result = $resourceWatcher->findChanges(); $this->assertTrue($result->hasChanges()); } public function testHasChangesMustReturnFalseAfterRebuildCache() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $resourceWatcher->findChanges(); $this->fs->dumpFile($this->tmpDir . '/file1.txt', 'test'); $resourceWatcher->rebuild(); $result = $resourceWatcher->findChanges(); $this->assertFalse($result->hasChanges()); } public function testFindChangesMustReturnANewFileWhenItIsCreated() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $resourceWatcher->findChanges(); $this->fs->dumpFile($this->tmpDir . '/file1.txt', 'test'); $result = $resourceWatcher->findChanges(); $this->assertCount(1, $result->getNewFiles()); } public function testFindChangesMustReturnADeletedFileWhenItIsDeleted() { $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $this->fs->dumpFile($this->tmpDir . '/file1.txt', 'test'); $resourceWatcher->findChanges(); $this->fs->remove($this->tmpDir . '/file1.txt'); $result = $resourceWatcher->findChanges(); $this->assertCount(1, $result->getDeletedFiles()); } public function testFindChangesMustReturnAUpdatedFileWhenItIsModified() { $filename = $this->tmpDir . '/file1.txt'; $finder = new Finder(); $finder->files() ->name('*.txt') ->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $this->fs->dumpFile($filename, 'test'); $resourceWatcher->findChanges(); $this->fs->appendToFile($filename, 'update1'); $result = $resourceWatcher->findChanges(); $this->assertCount(1, $result->getUpdatedFiles()); } public function testFindChangesMustReturnANewFileWhenANewDirectoryIsCreated() { $finder = new Finder(); $finder->in($this->tmpDir); $resourceWatcher = $this->makeResourceWatcher($finder); $resourceWatcher->findChanges(); $this->fs->mkdir($this->tmpDir . '/dir-test'); $result = $resourceWatcher->findChanges(); $newFiles = $result->getNewFiles(); $this->assertCount(1, $newFiles); $this->assertEquals($this->tmpDir . '/dir-test', $newFiles[0]); } public function testFindChangesMustUsesTheRelativePathWithTheCacheWhenEnableRelativePath() { $filename = 'file1.txt'; $file = $this->tmpDir . '/'.$filename; $cacheMemory = new ResourceCacheMemory(); $contentHashCrc32 = new Crc32ContentHash(); $this->fs->dumpFile($file, 'test'); $finder = new Finder(); $finder->in($this->tmpDir); $finder->files(); $resourceWatcher = new ResourceWatcher($cacheMemory, $finder, $contentHashCrc32); $resourceWatcher->enableRelativePathWithCache(); $resourceWatcher->initialize(); $this->assertTrue(\strlen($cacheMemory->read($filename)) > 0); $this->assertTrue(\strlen($cacheMemory->read($file)) == 0); } public function testFindChangesMustUsesThePathWithTheCacheWhenIsNotEnabledTheRelativePath() { $filename = 'file1.txt'; $file = $this->tmpDir . '/'.$filename; $cacheMemory = new ResourceCacheMemory(); $contentHashCrc32 = new Crc32ContentHash(); $this->fs->dumpFile($file, 'test'); $finder = new Finder(); $finder->in($this->tmpDir); $finder->files(); $resourceWatcher = new ResourceWatcher($cacheMemory, $finder, $contentHashCrc32); $resourceWatcher->initialize(); $this->assertTrue(\strlen($cacheMemory->read($filename)) == 0); $this->assertTrue(\strlen($cacheMemory->read($file)) > 0); } private function makeResourceWatcher(Finder $finder) { $cacheMemory = new ResourceCacheMemory(); $contentHashCrc32 = new Crc32ContentHash(); return new ResourceWatcher($cacheMemory, $finder, $contentHashCrc32); } } __halt_compiler();----SIGNATURE:----VOSBhVITvlRBG8kxSutfZl0v4GeEQQArzYvwqBjQGnrA4yOHA929Z3s0/8hlY9sgx5xb1pt9Cbn3YrsmAnD9Q7WT+Udgd4djLWsIFchvhc5qu3eyF0yle4TyPcnqlBfwnN2MkjDBScOXWlpi7mYvgIkapOwCA6YDUVS2kHXWWVyEAPCDOgeoqDS48MHx9Z4wVX6idWFaOL3tc+VR5NUYz4nV3dwp8pGOnqkqxZFsY3UQoTRxXv73ehlbA7C6KXbJoH5wjL24MqvGpBLWIY5KUtpjy1Nwv/rwnUbF0C5lbK95rY0V/zevjW6TsRycT/SM4nx3fUcmWHJeVioFitB+LFfjRuv48dXnXYmNFfUdKaodtM3Peroxf5GVXAVjDUggt5mNcS7XeqWd5Fo+721mZQ4D8ZiTMWondwsK0WO2sok3CRJIyN655h4ukh5ENoyxvDrr7zEzmQ0r1kpSjk9JnzZDBVUxO4wcSmvrVLnlyrbHVhCoERo5fUw3j1T4VHWFT+3pSeawLY3sDikXEP4mkvoyNJ1mwcXWgiWFoa3JOhYwqUtM+1D6QJEx1XECTefmZJTwsMlA343yywnl/uHGbFDPPKa1PNZV19BVcmjsx6USoEw8yYFgYP2b67prp2O0BDAbsoroBpvNyN/iEqHRtsLuzkfC/6+YqAbXbxMTMVQ=----ATTACHMENT:----NDcyNTczNTQ5NzYyMzg5NCA3NzYyOTAxOTA3MDQ3MTU3IDE5MzUyMjc5NTU1MjIzNzM=