/**
  * @dataProvider providePatternsAndMatches
  */
 public function testPatternMatching($eventPattern, array $expectedMatches, array $expectedMisses)
 {
     $pattern = new ListenerPattern($eventPattern, null);
     foreach ($expectedMatches as $eventName) {
         $this->assertTrue($pattern->test($eventName), sprintf('Pattern "%s" should match event "%s"', $eventPattern, $eventName));
     }
     foreach ($expectedMisses as $eventName) {
         $this->assertFalse($pattern->test($eventName), sprintf('Pattern "%s" should not match event "%s"', $eventPattern, $eventName));
     }
 }
Exemple #2
0
 /**
  * Adds an event listener for all events matching the specified pattern.
  *
  * This method will lazily register the listener when a matching event is
  * dispatched.
  *
  * @param ListenerPattern $pattern
  */
 protected function addListenerPattern(ListenerPattern $pattern)
 {
     $this->patterns[$pattern->getEventPattern()][] = $pattern;
     foreach ($this->syncedEvents as $eventName => $value) {
         if ($pattern->test($eventName)) {
             unset($this->syncedEvents[$eventName]);
         }
     }
 }