fileManager = $this->getMockBuilder(FileManager::class)->disableOriginalConstructor()->getMock(); $this->dataCache = new DataCache($this->fileManager); } public function testHasTrue() { $this->fileManager ->expects($this->once()) ->method('isFile') ->with('data/cache/application/autoload.php') ->willReturn(true); $result = $this->dataCache->has('autoload'); $this->assertTrue($result); } public function testHasFalse() { $this->fileManager ->expects($this->once()) ->method('isFile') ->with('data/cache/application/autoload.php') ->willReturn(false); $result = $this->dataCache->has('autoload'); $this->assertFalse($result); } public function testStoreData() { $data = [ 'test' => 1, ]; $this->fileManager ->expects($this->once()) ->method('putPhpContents') ->with('data/cache/application/autoload.php', $data, true, true) ->willReturn(true); $this->dataCache->store('autoload', $data); } public function testStoreError() { $this->expectException(RuntimeException::class); $data = [ 'test' => 1, ]; $this->fileManager ->expects($this->once()) ->method('putPhpContents') ->with('data/cache/application/autoload.php', $data, true, true) ->willReturn(false); $this->dataCache->store('autoload', $data); } public function testStoreBadDataType() { $this->expectException(InvalidArgumentException::class); $data = false; $this->dataCache->store('autoload', $data); } public function testSubDir() { $this->fileManager ->expects($this->once()) ->method('isFile') ->with('data/cache/application/languageTest/test0.php') ->willReturn(true); $result = $this->dataCache->has('languageTest/test0'); $this->assertTrue($result); } public function testBadKey1() { $this->expectException(InvalidArgumentException::class); $result = $this->dataCache->has('/language'); $this->assertTrue($result); } public function testBadKey2() { $this->expectException(InvalidArgumentException::class); $result = $this->dataCache->has('language/'); $this->assertTrue($result); } public function testBadKey3() { $this->expectException(InvalidArgumentException::class); $result = $this->dataCache->has(''); $this->assertTrue($result); } public function testBadKey4() { $this->expectException(InvalidArgumentException::class); $result = $this->dataCache->has('language\test'); $this->assertTrue($result); } }