format('Y-m-d'), File::created($testFile)->format('Y-m-d')); \unlink($testFile); } /** * @testdox The directories last change date can be returned * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticChangedAt() : void { $testFile = __DIR__ . '/test.txt'; self::assertTrue(File::create($testFile)); $now = new \DateTime('now'); self::assertEquals($now->format('Y-m-d'), File::changed($testFile)->format('Y-m-d')); \unlink($testFile); } /** * @testdox A file can be deleted * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticDelete() : void { $testFile = __DIR__ . '/test.txt'; self::assertTrue(File::create($testFile)); self::assertTrue(File::delete($testFile)); self::assertFalse(File::exists($testFile)); } /** * @testdox A none-existing file cannot be deleted * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidStaticDelete() : void { $testFile = __DIR__ . '/test.txt'; self::assertFalse(File::delete($testFile)); } /** * @testdox The size of a file can be returned * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticSize() : void { $testFile = __DIR__ . '/test.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); self::assertGreaterThan(0, File::size($testFile)); \unlink($testFile); } /** * @testdox The permission of a file can be returned * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticPermission() : void { $testFile = __DIR__ . '/test.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); self::assertGreaterThan(0, File::permission($testFile)); \unlink($testFile); } /** * @testdox The permission of a none-existing file is negative * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidStaticPermission() : void { $testFile = __DIR__ . '/test.txt'; self::assertEquals(-1, File::permission($testFile)); } /** * @testdox A file can be copied to a different location * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticCopy() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/sub/path/testing.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); self::assertTrue(File::copy($testFile, $newPath)); self::assertTrue(File::exists($newPath)); self::assertEquals('test', File::get($newPath)); \unlink($newPath); \rmdir(__DIR__ . '/sub/path/'); \rmdir(__DIR__ . '/sub/'); \unlink($testFile); } /** * @testdox A file cannot be copied to a different location if the destination already exists * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidStaticCopy() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/test2.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); File::put($newPath, 'test2', ContentPutMode::CREATE); self::assertFalse(File::copy($testFile, $newPath)); self::assertEquals('test2', File::get($newPath)); \unlink($newPath); \unlink($testFile); } /** * @testdox A file can be forced to be copied to a different location even if the destination already exists * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticCopyOverwrite() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/test2.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); File::put($newPath, 'test2', ContentPutMode::CREATE); self::assertTrue(File::copy($testFile, $newPath, true)); self::assertEquals('test', File::get($newPath)); \unlink($newPath); \unlink($testFile); } /** * @testdox A file can be moved to a different location * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticMove() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/sub/path/testing.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); self::assertTrue(File::move($testFile, $newPath)); self::assertFalse(File::exists($testFile)); self::assertTrue(File::exists($newPath)); self::assertEquals('test', File::get($newPath)); \unlink($newPath); \rmdir(__DIR__ . '/sub/path/'); \rmdir(__DIR__ . '/sub/'); } /** * @testdox A file cannot be moved to a different location if the destination already exists * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidStaticMove() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/test2.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); File::put($newPath, 'test2', ContentPutMode::CREATE); self::assertFalse(File::move($testFile, $newPath)); self::assertTrue(File::exists($testFile)); self::assertEquals('test2', File::get($newPath)); \unlink($newPath); \unlink($testFile); } /** * @testdox A file can be forced to be moved to a different location even if the destination already exists * @covers phpOMS\System\File\Local\File * @group framework */ public function testStaticMoveOverwrite() : void { $testFile = __DIR__ . '/test.txt'; $newPath = __DIR__ . '/test2.txt'; File::put($testFile, 'test', ContentPutMode::CREATE); File::put($newPath, 'test2', ContentPutMode::CREATE); self::assertTrue(File::move($testFile, $newPath, true)); self::assertFalse(File::exists($testFile)); self::assertEquals('test', File::get($newPath)); \unlink($newPath); } /** * @testdox The size of a none-existing file is negative * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidSizePath() : void { self::assertEquals(-1, File::size(__DIR__ . '/invalid.txt')); } /** * @testdox A none-existing file cannot be copied * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidCopyPath() : void { self::assertFalse(File::copy(__DIR__ . '/invalid.txt', __DIR__ . '/invalid2.txt')); } /** * @testdox A none-existing file cannot be moved * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidMovePath() : void { self::assertFalse(File::move(__DIR__ . '/invalid.txt', __DIR__ . '/invalid2.txt')); } /** * @testdox Reading the content of a none-existing file throws a PathException * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidGetPath() : void { $this->expectException(\phpOMS\System\File\PathException::class); File::get(__DIR__ . '/invalid.txt'); } /** * @testdox Reading the created date of a none-existing file throws a PathException * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidCreatedPath() : void { $this->expectException(\phpOMS\System\File\PathException::class); File::created(__DIR__ . '/invalid.txt'); } /** * @testdox Reading the last change date of a none-existing file throws a PathException * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidChangedPath() : void { $this->expectException(\phpOMS\System\File\PathException::class); File::changed(__DIR__ . '/invalid.txt'); } /** * @testdox Reading the owner of a none-existing file throws a PathException * @covers phpOMS\System\File\Local\File * @group framework */ public function testInvalidOwnerPath() : void { $this->expectException(\phpOMS\System\File\PathException::class); File::owner(__DIR__ . '/invalid.txt'); } }