public function testAnnotationWithoutConstructor() {
$parser = $this
->createTestParser();
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor("Some data")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertNotNull($annot);
$this
->assertTrue($annot instanceof SomeAnnotationClassNameWithoutConstructor);
$this
->assertNull($annot->name);
$this
->assertNotNull($annot->data);
$this
->assertEquals($annot->data, "Some data");
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor(name="Some Name", data = "Some data")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertNotNull($annot);
$this
->assertTrue($annot instanceof SomeAnnotationClassNameWithoutConstructor);
$this
->assertEquals($annot->name, "Some Name");
$this
->assertEquals($annot->data, "Some data");
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor(data = "Some data")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertEquals($annot->data, "Some data");
$this
->assertNull($annot->name);
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor(name = "Some name")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertEquals($annot->name, "Some name");
$this
->assertNull($annot->data);
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor("Some data")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertEquals($annot->data, "Some data");
$this
->assertNull($annot->name);
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructor("Some data",name = "Some name")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertEquals($annot->name, "Some name");
$this
->assertEquals($annot->data, "Some data");
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationWithConstructorWithoutParams(name = "Some name")
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$annot = $result[0];
$this
->assertEquals($annot->name, "Some name");
$this
->assertEquals($annot->data, "Some data");
$docblock = <<<DOCBLOCK
/**
* @SomeAnnotationClassNameWithoutConstructorAndProperties()
*/
DOCBLOCK;
$result = $parser
->parse($docblock);
$this
->assertEquals(count($result), 1);
$this
->assertTrue($result[0] instanceof SomeAnnotationClassNameWithoutConstructorAndProperties);
}