3 namespace Drupal\DrupalExtension\Context\Annotation;
5 use Behat\Behat\Context\Annotation\AnnotationReader;
6 use Drupal\DrupalExtension\Hook\Dispatcher;
10 * Annotated contexts reader.
12 * @see \Behat\Behat\Context\Loader\AnnotatedLoader
14 class Reader implements AnnotationReader {
19 private static $regex = '/^\@(beforenodecreate|afternodecreate|beforetermcreate|aftertermcreate|beforeusercreate|afterusercreate)(?:\s+(.+))?$/i';
24 private static $classes = array(
25 'afternodecreate' => 'Drupal\DrupalExtension\Hook\Call\AfterNodeCreate',
26 'aftertermcreate' => 'Drupal\DrupalExtension\Hook\Call\AfterTermCreate',
27 'afterusercreate' => 'Drupal\DrupalExtension\Hook\Call\AfterUserCreate',
28 'beforenodecreate' => 'Drupal\DrupalExtension\Hook\Call\BeforeNodeCreate',
29 'beforetermcreate' => 'Drupal\DrupalExtension\Hook\Call\BeforeTermCreate',
30 'beforeusercreate' => 'Drupal\DrupalExtension\Hook\Call\BeforeUserCreate',
36 public function readCallee($contextClass, ReflectionMethod $method, $docLine, $description) {
38 if (!preg_match(self::$regex, $docLine, $match)) {
42 $type = strtolower($match[1]);
43 $class = self::$classes[$type];
44 $pattern = isset($match[2]) ? $match[2] : null;
45 $callable = array($contextClass, $method->getName());
47 return new $class($pattern, $callable, $description);