class vfsStreamDirectoryTestCase in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamDirectoryTestCase.php \org\bovigo\vfs\vfsStreamDirectoryTestCase
Test for org\bovigo\vfs\vfsStreamDirectory.
Hierarchy
- class \org\bovigo\vfs\vfsStreamDirectoryTestCase extends \org\bovigo\vfs\PHPUnit_Framework_TestCase
Expanded class hierarchy of vfsStreamDirectoryTestCase
File
- vendor/
mikey179/ vfsStream/ src/ test/ php/ org/ bovigo/ vfs/ vfsStreamDirectoryTestCase.php, line 14
Namespace
org\bovigo\vfsView source
class vfsStreamDirectoryTestCase extends \PHPUnit_Framework_TestCase {
/**
* instance to test
*
* @var vfsStreamDirectory
*/
protected $dir;
/**
* set up test environment
*/
public function setUp() {
$this->dir = new vfsStreamDirectory('foo');
}
/**
* assure that a directory seperator inside the name throws an exception
*
* @test
* @expectedException org\bovigo\vfs\vfsStreamException
*/
public function invalidCharacterInName() {
$dir = new vfsStreamDirectory('foo/bar');
}
/**
* test default values and methods
*
* @test
*/
public function defaultValues() {
$this
->assertEquals(vfsStreamContent::TYPE_DIR, $this->dir
->getType());
$this
->assertEquals('foo', $this->dir
->getName());
$this
->assertTrue($this->dir
->appliesTo('foo'));
$this
->assertTrue($this->dir
->appliesTo('foo/bar'));
$this
->assertFalse($this->dir
->appliesTo('bar'));
$this
->assertEquals(array(), $this->dir
->getChildren());
}
/**
* test renaming the directory
*
* @test
*/
public function rename() {
$this->dir
->rename('bar');
$this
->assertEquals('bar', $this->dir
->getName());
$this
->assertFalse($this->dir
->appliesTo('foo'));
$this
->assertFalse($this->dir
->appliesTo('foo/bar'));
$this
->assertTrue($this->dir
->appliesTo('bar'));
}
/**
* renaming the directory to an invalid name throws a vfsStreamException
*
* @test
* @expectedException org\bovigo\vfs\vfsStreamException
*/
public function renameToInvalidNameThrowsvfsStreamException() {
$this->dir
->rename('foo/baz');
}
/**
* @test
* @since 0.10.0
*/
public function hasNoChildrenByDefault() {
$this
->assertFalse($this->dir
->hasChildren());
}
/**
* @test
* @since 0.10.0
*/
public function hasChildrenReturnsTrueIfAtLeastOneChildPresent() {
$mockChild = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild
->expects($this
->any())
->method('appliesTo')
->will($this
->returnValue(false));
$mockChild
->expects($this
->any())
->method('getName')
->will($this
->returnValue('baz'));
$this->dir
->addChild($mockChild);
$this
->assertTrue($this->dir
->hasChildren());
}
/**
* @test
*/
public function hasChildReturnsFalseForNonExistingChild() {
$this
->assertFalse($this->dir
->hasChild('bar'));
}
/**
* @test
*/
public function getChildReturnsNullForNonExistingChild() {
$this
->assertNull($this->dir
->getChild('bar'));
}
/**
* @test
*/
public function removeChildReturnsFalseForNonExistingChild() {
$this
->assertFalse($this->dir
->removeChild('bar'));
}
/**
* @test
*/
public function nonExistingChild() {
$mockChild = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild
->expects($this
->any())
->method('appliesTo')
->will($this
->returnValue(false));
$mockChild
->expects($this
->any())
->method('getName')
->will($this
->returnValue('baz'));
$this->dir
->addChild($mockChild);
$this
->assertFalse($this->dir
->removeChild('bar'));
}
/**
* test that adding, handling and removing of a child works as expected
*
* @test
*/
public function childHandling() {
$mockChild = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild
->expects($this
->any())
->method('getType')
->will($this
->returnValue(vfsStreamContent::TYPE_FILE));
$mockChild
->expects($this
->any())
->method('getName')
->will($this
->returnValue('bar'));
$mockChild
->expects($this
->any())
->method('appliesTo')
->with($this
->equalTo('bar'))
->will($this
->returnValue(true));
$mockChild
->expects($this
->once())
->method('size')
->will($this
->returnValue(5));
$this->dir
->addChild($mockChild);
$this
->assertTrue($this->dir
->hasChild('bar'));
$bar = $this->dir
->getChild('bar');
$this
->assertSame($mockChild, $bar);
$this
->assertEquals(array(
$mockChild,
), $this->dir
->getChildren());
$this
->assertEquals(0, $this->dir
->size());
$this
->assertEquals(5, $this->dir
->sizeSummarized());
$this
->assertTrue($this->dir
->removeChild('bar'));
$this
->assertEquals(array(), $this->dir
->getChildren());
$this
->assertEquals(0, $this->dir
->size());
$this
->assertEquals(0, $this->dir
->sizeSummarized());
}
/**
* test that adding, handling and removing of a child works as expected
*
* @test
*/
public function childHandlingWithSubdirectory() {
$mockChild = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild
->expects($this
->any())
->method('getType')
->will($this
->returnValue(vfsStreamContent::TYPE_FILE));
$mockChild
->expects($this
->any())
->method('getName')
->will($this
->returnValue('bar'));
$mockChild
->expects($this
->once())
->method('size')
->will($this
->returnValue(5));
$subdir = new vfsStreamDirectory('subdir');
$subdir
->addChild($mockChild);
$this->dir
->addChild($subdir);
$this
->assertTrue($this->dir
->hasChild('subdir'));
$this
->assertSame($subdir, $this->dir
->getChild('subdir'));
$this
->assertEquals(array(
$subdir,
), $this->dir
->getChildren());
$this
->assertEquals(0, $this->dir
->size());
$this
->assertEquals(5, $this->dir
->sizeSummarized());
$this
->assertTrue($this->dir
->removeChild('subdir'));
$this
->assertEquals(array(), $this->dir
->getChildren());
$this
->assertEquals(0, $this->dir
->size());
$this
->assertEquals(0, $this->dir
->sizeSummarized());
}
/**
* dd
*
* @test
* @group regression
* @group bug_5
*/
public function addChildReplacesChildWithSameName_Bug_5() {
$mockChild1 = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild1
->expects($this
->any())
->method('getType')
->will($this
->returnValue(vfsStreamContent::TYPE_FILE));
$mockChild1
->expects($this
->any())
->method('getName')
->will($this
->returnValue('bar'));
$mockChild2 = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild2
->expects($this
->any())
->method('getType')
->will($this
->returnValue(vfsStreamContent::TYPE_FILE));
$mockChild2
->expects($this
->any())
->method('getName')
->will($this
->returnValue('bar'));
$this->dir
->addChild($mockChild1);
$this
->assertTrue($this->dir
->hasChild('bar'));
$this
->assertSame($mockChild1, $this->dir
->getChild('bar'));
$this->dir
->addChild($mockChild2);
$this
->assertTrue($this->dir
->hasChild('bar'));
$this
->assertSame($mockChild2, $this->dir
->getChild('bar'));
}
/**
* When testing for a nested path, verify that directory separators are respected properly
* so that subdir1/subdir2 is not considered equal to subdir1Xsubdir2.
*
* @test
* @group bug_24
* @group regression
*/
public function explicitTestForSeparatorWithNestedPaths_Bug_24() {
$mockChild = $this
->getMock('org\\bovigo\\vfs\\vfsStreamContent');
$mockChild
->expects($this
->any())
->method('getType')
->will($this
->returnValue(vfsStreamContent::TYPE_FILE));
$mockChild
->expects($this
->any())
->method('getName')
->will($this
->returnValue('bar'));
$subdir1 = new vfsStreamDirectory('subdir1');
$this->dir
->addChild($subdir1);
$subdir2 = new vfsStreamDirectory('subdir2');
$subdir1
->addChild($subdir2);
$subdir2
->addChild($mockChild);
$this
->assertTrue($this->dir
->hasChild('subdir1'), "Level 1 path with separator exists");
$this
->assertTrue($this->dir
->hasChild('subdir1/subdir2'), "Level 2 path with separator exists");
$this
->assertTrue($this->dir
->hasChild('subdir1/subdir2/bar'), "Level 3 path with separator exists");
$this
->assertFalse($this->dir
->hasChild('subdir1.subdir2'), "Path with period does not exist");
$this
->assertFalse($this->dir
->hasChild('subdir1.subdir2/bar'), "Nested path with period does not exist");
}
/**
* setting and retrieving permissions for a directory
*
* @test
* @group permissions
*/
public function permissions() {
$this
->assertEquals(0777, $this->dir
->getPermissions());
$this
->assertSame($this->dir, $this->dir
->chmod(0755));
$this
->assertEquals(0755, $this->dir
->getPermissions());
}
/**
* setting and retrieving permissions for a directory
*
* @test
* @group permissions
*/
public function permissionsSet() {
$this->dir = new vfsStreamDirectory('foo', 0755);
$this
->assertEquals(0755, $this->dir
->getPermissions());
$this
->assertSame($this->dir, $this->dir
->chmod(0700));
$this
->assertEquals(0700, $this->dir
->getPermissions());
}
/**
* setting and retrieving owner of a file
*
* @test
* @group permissions
*/
public function owner() {
$this
->assertEquals(vfsStream::getCurrentUser(), $this->dir
->getUser());
$this
->assertTrue($this->dir
->isOwnedByUser(vfsStream::getCurrentUser()));
$this
->assertSame($this->dir, $this->dir
->chown(vfsStream::OWNER_USER_1));
$this
->assertEquals(vfsStream::OWNER_USER_1, $this->dir
->getUser());
$this
->assertTrue($this->dir
->isOwnedByUser(vfsStream::OWNER_USER_1));
}
/**
* setting and retrieving owner group of a file
*
* @test
* @group permissions
*/
public function group() {
$this
->assertEquals(vfsStream::getCurrentGroup(), $this->dir
->getGroup());
$this
->assertTrue($this->dir
->isOwnedByGroup(vfsStream::getCurrentGroup()));
$this
->assertSame($this->dir, $this->dir
->chgrp(vfsStream::GROUP_USER_1));
$this
->assertEquals(vfsStream::GROUP_USER_1, $this->dir
->getGroup());
$this
->assertTrue($this->dir
->isOwnedByGroup(vfsStream::GROUP_USER_1));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
vfsStreamDirectoryTestCase:: |
protected | property | instance to test | |
vfsStreamDirectoryTestCase:: |
public | function | dd | |
vfsStreamDirectoryTestCase:: |
public | function | test that adding, handling and removing of a child works as expected | |
vfsStreamDirectoryTestCase:: |
public | function | test that adding, handling and removing of a child works as expected | |
vfsStreamDirectoryTestCase:: |
public | function | test default values and methods | |
vfsStreamDirectoryTestCase:: |
public | function | When testing for a nested path, verify that directory separators are respected properly so that subdir1/subdir2 is not considered equal to subdir1Xsubdir2. | |
vfsStreamDirectoryTestCase:: |
public | function | @test | |
vfsStreamDirectoryTestCase:: |
public | function | setting and retrieving owner group of a file | |
vfsStreamDirectoryTestCase:: |
public | function | @test @since 0.10.0 | |
vfsStreamDirectoryTestCase:: |
public | function | @test | |
vfsStreamDirectoryTestCase:: |
public | function | @test @since 0.10.0 | |
vfsStreamDirectoryTestCase:: |
public | function | assure that a directory seperator inside the name throws an exception | |
vfsStreamDirectoryTestCase:: |
public | function | @test | |
vfsStreamDirectoryTestCase:: |
public | function | setting and retrieving owner of a file | |
vfsStreamDirectoryTestCase:: |
public | function | setting and retrieving permissions for a directory | |
vfsStreamDirectoryTestCase:: |
public | function | setting and retrieving permissions for a directory | |
vfsStreamDirectoryTestCase:: |
public | function | @test | |
vfsStreamDirectoryTestCase:: |
public | function | test renaming the directory | |
vfsStreamDirectoryTestCase:: |
public | function | renaming the directory to an invalid name throws a vfsStreamException | |
vfsStreamDirectoryTestCase:: |
public | function | set up test environment |