Skip to content

Commit 7e297db

Browse files
committed
[Filesystem] Added unit tests for mkdir method.
1 parent 6ac5486 commit 7e297db

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

src/Symfony/Component/Filesystem/Tests/FilesystemTest.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,82 @@ public function testCopyCreatesTargetDirectoryIfItDoesNotExist()
115115
unlink($targetFilePath);
116116
rmdir($targetFileDirectory);
117117
}
118+
119+
public function testMkdirCreatesDirectoriesRecursively()
120+
{
121+
$directory = sys_get_temp_dir().DIRECTORY_SEPARATOR.time();
122+
$subDirectory = $directory.DIRECTORY_SEPARATOR.'sub_directory';
123+
124+
$filesystem = new Filesystem();
125+
$result = $filesystem->mkdir($subDirectory);
126+
127+
$this->assertTrue($result);
128+
$this->assertTrue(is_dir($subDirectory));
129+
130+
rmdir($subDirectory);
131+
rmdir($directory);
132+
}
133+
134+
public function testMkdirCreatesDirectoriesFromArray()
135+
{
136+
$basePath = sys_get_temp_dir().DIRECTORY_SEPARATOR.time();
137+
$directories = array(
138+
$basePath.'1', $basePath.'2', $basePath.'3'
139+
);
140+
141+
$filesystem = new Filesystem();
142+
$result = $filesystem->mkdir($directories);
143+
144+
$this->assertTrue($result);
145+
$this->assertTrue(is_dir($basePath.'1'));
146+
$this->assertTrue(is_dir($basePath.'2'));
147+
$this->assertTrue(is_dir($basePath.'3'));
148+
149+
rmdir($basePath.'1');
150+
rmdir($basePath.'2');
151+
rmdir($basePath.'3');
152+
}
153+
154+
public function testMkdirCreatesDirectoriesFromTraversableObject()
155+
{
156+
$basePath = sys_get_temp_dir().DIRECTORY_SEPARATOR.time();
157+
$directories = new \ArrayObject(array(
158+
$basePath.'1', $basePath.'2', $basePath.'3'
159+
));
160+
161+
$filesystem = new Filesystem();
162+
$result = $filesystem->mkdir($directories);
163+
164+
$this->assertTrue($result);
165+
$this->assertTrue(is_dir($basePath.'1'));
166+
$this->assertTrue(is_dir($basePath.'2'));
167+
$this->assertTrue(is_dir($basePath.'3'));
168+
169+
rmdir($basePath.'1');
170+
rmdir($basePath.'2');
171+
rmdir($basePath.'3');
172+
}
173+
174+
public function testMkdirCreatesDirectoriesEvenIfItFailsToCreateOneOfThem()
175+
{
176+
$basePath = sys_get_temp_dir().DIRECTORY_SEPARATOR.time();
177+
$directories = array(
178+
$basePath.'1', $basePath.'2', $basePath.'3'
179+
);
180+
181+
// create a file to make that directory cannot be created
182+
file_put_contents($basePath.'2', '');
183+
184+
$filesystem = new Filesystem();
185+
$result = $filesystem->mkdir($directories);
186+
187+
$this->assertFalse($result);
188+
$this->assertTrue(is_dir($basePath.'1'));
189+
$this->assertFalse(is_dir($basePath.'2'));
190+
$this->assertTrue(is_dir($basePath.'3'));
191+
192+
rmdir($basePath.'1');
193+
unlink($basePath.'2');
194+
rmdir($basePath.'3');
195+
}
118196
}

0 commit comments

Comments
 (0)