| 
<?php
 namespace Generics\Tests;
 
 use Generics\Util\Directory;
 use Generics\Util\RandomString;
 use Generics\Streams\FileOutputStream;
 
 class DirectoryTest extends \PHPUnit\Framework\TestCase
 {
 public function testCreateAndRemoveSimple()
 {
 $tempDirName = RandomString::generate(8, RandomString::ASCII);
 $dir = new Directory(getcwd() . "/$tempDirName");
 $dir->create();
 $dir->isEmpty();
 $dir->remove();
 $this->assertFalse($dir->exists());
 }
 
 public function testCreateAndRemoveRecursive()
 {
 $tempDirName = RandomString::generate(8, RandomString::ASCII);
 $dir = new Directory(getcwd() . $tempDirName . '/subdir1/subdir2');
 $dir->create(true);
 
 $tempFileName = tempnam($dir->getPath(), 'txt');
 $fd = fopen($tempFileName, "w");
 fclose($fd);
 
 $dir2 = new Directory(getcwd() . $tempDirName);
 $dir2->remove(true);
 
 $this->assertFalse($dir2->exists());
 }
 
 public function testFileExists()
 {
 $fileName = "test.txt";
 $tempDirName = RandomString::generate(8, RandomString::ASCII);
 
 $dir = new Directory(getcwd() . "/$tempDirName");
 $this->assertFalse($dir->fileExists($fileName));
 
 $dir->create();
 
 $this->assertFalse($dir->fileExists($fileName));
 
 $file = new FileOutputStream($dir->getPath() . '/' . $fileName);
 $file->write("Rant data");
 $file->close();
 
 $this->assertTrue($dir->fileExists($fileName));
 
 $this->assertFalse($dir->isEmpty());
 $this->assertTrue($dir->isEmpty($fileName));
 
 $dir->remove(true);
 
 $this->assertFalse($dir->fileExists($fileName));
 }
 }
 
 |