Author: Chad Sikorra (Chad.Sikorra@gmail.com)
Inheritance: extends Event
 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);
 }