public function testListenerOnNoMessagesLoadedEventCanReturnTextDomainObject() { $trigger = null; $doNotTrigger = null; $textDomain = new TextDomain(array('foo' => 'BOOYAH')); $this->translator->enableEventManager(); $events = $this->translator->getEventManager(); $events->attach(Translator::EVENT_NO_MESSAGES_LOADED, function (EventInterface $event) use(&$trigger) { $trigger = true; }); $events->attach(Translator::EVENT_NO_MESSAGES_LOADED, function (EventInterface $event) use($textDomain) { return $textDomain; }); $events->attach(Translator::EVENT_NO_MESSAGES_LOADED, function (EventInterface $event) use(&$doNotTrigger) { $doNotTrigger = true; }); $result = $this->translator->translate('foo', 'bar', 'baz'); $this->assertTrue($trigger); $this->assertNull($doNotTrigger); $this->assertEquals('BOOYAH', $result); }