--- /dev/null
+<?php
+
+namespace PhpParser\Node\Stmt;
+
+class PropertyTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @dataProvider provideModifiers
+ */
+ public function testModifiers($modifier) {
+ $node = new Property(
+ constant('PhpParser\Node\Stmt\Class_::MODIFIER_' . strtoupper($modifier)),
+ array() // invalid
+ );
+
+ $this->assertTrue($node->{'is' . $modifier}());
+ }
+
+ public function testNoModifiers() {
+ $node = new Property(0, array());
+
+ $this->assertTrue($node->isPublic());
+ $this->assertFalse($node->isProtected());
+ $this->assertFalse($node->isPrivate());
+ $this->assertFalse($node->isStatic());
+ }
+
+ public function testStaticImplicitlyPublic() {
+ $node = new Property(Class_::MODIFIER_STATIC, array());
+ $this->assertTrue($node->isPublic());
+ $this->assertFalse($node->isProtected());
+ $this->assertFalse($node->isPrivate());
+ $this->assertTrue($node->isStatic());
+ }
+
+ public function provideModifiers() {
+ return array(
+ array('public'),
+ array('protected'),
+ array('private'),
+ array('static'),
+ );
+ }
+}