function it_should_call_creation_events_when_creating_a_ldap_object(EventDispatcherInterface $dispatcher, $connection) { $this->addOperation->setLocation('dc=foo,dc=bar'); $connection->execute($this->addOperation)->willReturn(true); $beforeEvent = new LdapObjectCreationEvent(Event::LDAP_OBJECT_BEFORE_CREATE); $beforeEvent->setContainer('dc=foo,dc=bar'); $beforeEvent->setData(['username' => '%foo%', 'password' => '%bar%']); $beforeEvent->setDn(''); $afterEvent = new LdapObjectCreationEvent(Event::LDAP_OBJECT_AFTER_CREATE); $afterEvent->setContainer('dc=foo,dc=bar'); $afterEvent->setData(['username' => 'somedude', 'password' => '12345']); $afterEvent->setDn('cn=somedude,dc=foo,dc=bar'); $dispatcher->dispatch($beforeEvent)->shouldBeCalled(); $dispatcher->dispatch($afterEvent)->shouldBeCalled(); $this->config->setSchemaName('ad'); $this->beConstructedWith($connection, $this->schemaFactory, $dispatcher); $this->createUser()->with(['username' => '%foo%', 'password' => '%bar%'])->in('dc=foo,dc=bar')->setParameter('foo', 'somedude')->setParameter('bar', '12345'); $this->execute(); }
/** * Trigger a LDAP object after creation event. * * @param AddOperation $operation */ protected function triggerAfterCreationEvent(AddOperation $operation) { $event = new LdapObjectCreationEvent(Event::LDAP_OBJECT_AFTER_CREATE); $event->setData((new ParameterResolver($this->attributes, $this->hydrator->getParameters()))->resolve()); $event->setContainer($operation->getLocation()); $event->setDn($operation->getDn()); $this->dispatcher->dispatch($event); }