update DataProvider relative=null condition and add tests

This commit is contained in:
crazywhalecc
2022-08-03 16:59:48 +08:00
parent f97b87d5e5
commit 190eba585b
2 changed files with 31 additions and 7 deletions

View File

@@ -29,8 +29,32 @@ class DataProviderTest extends TestCase
public function testScanDirFiles(): void
{
// 常规测试
$files = DataProvider::scanDirFiles(SOURCE_ROOT_DIR . '/src/Module');
$this->assertContains(SOURCE_ROOT_DIR . '/src/Module/Example/Hello.php', $files);
// 检查文件夹不存在的判断
$random_id = uuidgen();
$dir = '/tmp/' . $random_id;
// 检查目录不存在是否返回false
$this->assertFalse(DataProvider::scanDirFiles($dir));
mkdir($dir);
// 检查目录存在时返回空
$this->assertEquals([], DataProvider::scanDirFiles($dir));
chmod($dir, 000);
// 目录无权限时也返回false
$this->assertFalse(DataProvider::scanDirFiles($dir));
chmod($dir, 0755);
mkdir($dir . '/test');
file_put_contents($dir . '/test/a.txt', 'Hello world!');
// 检查目录下文件是否正确返回
$this->assertEquals([$dir . '/test/a.txt'], DataProvider::scanDirFiles($dir));
// 检查不递归时包含目录的模式
$this->assertEquals([], DataProvider::scanDirFiles($dir, false));
$this->assertEquals([$dir . '/test'], DataProvider::scanDirFiles($dir, false, false, true));
// 检查相对目录是否能正常返回
$this->assertEquals(['test/a.txt'], DataProvider::scanDirFiles($dir, true, true));
// relative传入奇怪的东西就返回false
$this->assertFalse(DataProvider::scanDirFiles($dir, true, null, true));
}
public function testGetFrameworkRootDir(): void