| @@ 114-150 (lines=37) @@ | ||
| 111 | } |
|
| 112 | } |
|
| 113 | ||
| 114 | public function testEventListener() |
|
| 115 | { |
|
| 116 | $container = $this->getContainer(); |
|
| 117 | ||
| 118 | $def = new Definition('Foo'); |
|
| 119 | $def->addTag('jms_serializer.event_listener', [ |
|
| 120 | 'event' => 'serializer.pre_serialize', |
|
| 121 | 'class' => 'Bar', |
|
| 122 | ]); |
|
| 123 | ||
| 124 | $container->setDefinition('my_listener', $def); |
|
| 125 | ||
| 126 | $pass = new RegisterEventListenersAndSubscribersPass(); |
|
| 127 | $pass->process($container); |
|
| 128 | ||
| 129 | $dispatcher = $container->getDefinition('jms_serializer.event_dispatcher'); |
|
| 130 | $methodCalls = $dispatcher->getMethodCalls(); |
|
| 131 | ||
| 132 | $called = false; |
|
| 133 | foreach ($methodCalls as $call) { |
|
| 134 | if ($call[0] === 'setListeners') { |
|
| 135 | $called = true; |
|
| 136 | $this->assertEquals([ |
|
| 137 | 'serializer.pre_serialize' => [ |
|
| 138 | [ |
|
| 139 | ['my_listener', 'onserializerpreserialize'], |
|
| 140 | 'bar', |
|
| 141 | null |
|
| 142 | ] |
|
| 143 | ]], $call[1][0]); |
|
| 144 | } |
|
| 145 | } |
|
| 146 | ||
| 147 | if (!$called) { |
|
| 148 | $this->fail("The method setListeners was not invoked on the jms_serializer.event_dispatcher"); |
|
| 149 | } |
|
| 150 | } |
|
| 151 | ||
| 152 | public function testEventListenerWithParams() |
|
| 153 | { |
|
| @@ 152-190 (lines=39) @@ | ||
| 149 | } |
|
| 150 | } |
|
| 151 | ||
| 152 | public function testEventListenerWithParams() |
|
| 153 | { |
|
| 154 | $container = $this->getContainer(); |
|
| 155 | ||
| 156 | $container->setParameter('bar', 'Bar'); |
|
| 157 | ||
| 158 | $def = new Definition('Foo'); |
|
| 159 | $def->addTag('jms_serializer.event_listener', [ |
|
| 160 | 'event' => 'serializer.pre_serialize', |
|
| 161 | 'class' => '%bar%', |
|
| 162 | ]); |
|
| 163 | ||
| 164 | $container->setDefinition('my_listener', $def); |
|
| 165 | ||
| 166 | $pass = new RegisterEventListenersAndSubscribersPass(); |
|
| 167 | $pass->process($container); |
|
| 168 | ||
| 169 | $dispatcher = $container->getDefinition('jms_serializer.event_dispatcher'); |
|
| 170 | $methodCalls = $dispatcher->getMethodCalls(); |
|
| 171 | ||
| 172 | $called = false; |
|
| 173 | foreach ($methodCalls as $call) { |
|
| 174 | if ($call[0] === 'setListeners') { |
|
| 175 | $called = true; |
|
| 176 | $this->assertEquals([ |
|
| 177 | 'serializer.pre_serialize' => [ |
|
| 178 | [ |
|
| 179 | ['my_listener', 'onserializerpreserialize'], |
|
| 180 | 'bar', |
|
| 181 | null |
|
| 182 | ] |
|
| 183 | ]], $call[1][0]); |
|
| 184 | } |
|
| 185 | } |
|
| 186 | ||
| 187 | if (!$called) { |
|
| 188 | $this->fail("The method setListeners was not invoked on the jms_serializer.event_dispatcher"); |
|
| 189 | } |
|
| 190 | } |
|
| 191 | ||
| 192 | public function testEventSubscriber() |
|
| 193 | { |
|