Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #123 from FabioBatSilva/DCOM-97

Coverage for DCOM-97
  • Loading branch information...
commit 7ec510dbb2279f76a00ecf3f911298879c6ba1a1 2 parents d62352c + 49a997c
Guilherme Blanco guilhermeblanco authored
52 tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClosure.php
View
@@ -0,0 +1,52 @@
+<?php
+
+namespace Doctrine\Tests\Common\Annotations\Fixtures;
+
+use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll;
+use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation;
+
+/**
+ * @AnnotationTargetAll("Foo")
+ */
+final class ClassWithClosure
+{
+
+ /**
+ * @AnnotationTargetAll(@AnnotationTargetAnnotation)
+ * @var string
+ */
+ public $value;
+
+ /**
+ * @AnnotationTargetAll(@AnnotationTargetAnnotation)
+ *
+ * @param \Closure $callback
+ * @return \Closure
+ */
+ public function methodName(\Closure $callback)
+ {
+ $self = $this;
+ return function() use ($self, $callback) {
+ return $callback;
+ };
+ }
+
+ /**
+ * @param integer $year
+ * @param integer $month
+ * @param integer $day
+ * @return \Doctrine\Common\Collections\ArrayCollection
+ */
+ public function getEventsForDate($year, $month, $day){
+ $extractEvents = null; // check if date of item is inside day given
+ $extractEvents = $this->events->filter(function ($item) use ($year, $month, $day) {
+ $leftDate = new \DateTime($year.'-'.$month.'-'.$day.' 00:00');
+ $rigthDate = new \DateTime($year.'-'.$month.'-'.$day.' +1 day 00:00');
+ return ( ( $leftDate <= $item->getDateStart() ) && ( $item->getDateStart() < $rigthDate ) );
+
+ }
+ );
+ return $extractEvents;
+ }
+
+}
15 tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php
View
@@ -176,4 +176,19 @@ public function testIfPointerResetsOnMultipleParsingTries()
'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
), $parser->parseClass($class));
}
+
+ /**
+ * @group DCOM-97
+ * @group regression
+ */
+ public function testClassWithClosure()
+ {
+ $parser = new PhpParser();
+ $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\ClassWithClosure');
+
+ $this->assertEquals(array(
+ 'annotationtargetall' => __NAMESPACE__ . '\Fixtures\AnnotationTargetAll',
+ 'annotationtargetannotation' => __NAMESPACE__ . '\Fixtures\AnnotationTargetAnnotation',
+ ), $parser->parseClass($class));
+ }
}
Please sign in to comment.
Something went wrong with that request. Please try again.