public function testDispatcherBinding()
 {
     $listener = function () {
         return 'callback';
     };
     $pattern = new ListenerPattern('core.*', $listener, $priority = 0);
     $dispatcher = $this->getMockBuilder(Dispatcher::class)->setMethods(['attach', 'once', 'trigger', 'getListeners', 'detach', 'removeAllListeners', 'hasListeners'])->getMock();
     $dispatcher->expects($this->once())->method('attach')->with('core.request', $listener, $priority);
     $pattern->bind($dispatcher, 'core.request');
     // bind() should avoid adding the listener multiple times to the same event
     $pattern->bind($dispatcher, 'core.request');
 }