From d72f6e149be3bcdc697f7edc64496c6cab7d2c06 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio@bekerle.com>
Date: Wed, 19 Jan 2022 08:22:50 +0100
Subject: [PATCH] Fix tests and add PersonFromUserItemPostEvent test

---
 src/Resources/config/services_test.yaml       |  5 +---
 .../PersonFromUserItemSubscriber.php          | 25 +++++++++++++++++++
 tests/PersonTest.php                          | 12 ++++++---
 3 files changed, 34 insertions(+), 8 deletions(-)
 create mode 100644 src/TestUtils/PersonFromUserItemSubscriber.php

diff --git a/src/Resources/config/services_test.yaml b/src/Resources/config/services_test.yaml
index 7ca9a82..50ed0ea 100644
--- a/src/Resources/config/services_test.yaml
+++ b/src/Resources/config/services_test.yaml
@@ -1,7 +1,4 @@
 services:
-  Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils\DummyLDAPApiProvider:
+  Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils\PersonFromUserItemSubscriber:
     autowire: true
     autoconfigure: true
-
-  Dbp\Relay\BasePersonBundle\API\PersonProviderInterface:
-    '@Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils\DummyLDAPApiProvider'
diff --git a/src/TestUtils/PersonFromUserItemSubscriber.php b/src/TestUtils/PersonFromUserItemSubscriber.php
new file mode 100644
index 0000000..201dba4
--- /dev/null
+++ b/src/TestUtils/PersonFromUserItemSubscriber.php
@@ -0,0 +1,25 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils;
+
+use Dbp\Relay\BasePersonConnectorLdapBundle\Event\PersonFromUserItemPostEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+class PersonFromUserItemSubscriber implements EventSubscriberInterface
+{
+    public static function getSubscribedEvents()
+    {
+        return [
+            PersonFromUserItemPostEvent::NAME => 'onPost',
+        ];
+    }
+
+    public function onPost(PersonFromUserItemPostEvent $event)
+    {
+        $person = $event->getPerson();
+        $person->setExtraData('test', 'my-test-string');
+        $event->setPerson($person);
+    }
+}
diff --git a/tests/PersonTest.php b/tests/PersonTest.php
index 4e00527..f7c8888 100644
--- a/tests/PersonTest.php
+++ b/tests/PersonTest.php
@@ -11,8 +11,9 @@ use Adldap\Query\Grammar;
 use ApiPlatform\Core\Bridge\Symfony\Bundle\Test\ApiTestCase;
 use Dbp\Relay\BasePersonConnectorLdapBundle\Service\LDAPApi;
 use Dbp\Relay\BasePersonConnectorLdapBundle\Service\LDAPPersonProvider;
-use Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils\DummyLDAPApiProvider;
+use Dbp\Relay\BasePersonConnectorLdapBundle\TestUtils\PersonFromUserItemSubscriber;
 use Mockery;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 
 class PersonTest extends ApiTestCase
 {
@@ -29,8 +30,11 @@ class PersonTest extends ApiTestCase
     protected function setUp(): void
     {
         parent::setUp();
-        $ldapApiProvider = new DummyLDAPApiProvider();
-        $this->api = new LDAPApi(self::createClient()->getContainer(), $ldapApiProvider);
+        $personFromUserItemSubscriber = new PersonFromUserItemSubscriber();
+        $eventDispatcher = new EventDispatcher();
+        $eventDispatcher->addSubscriber($personFromUserItemSubscriber);
+
+        $this->api = new LDAPApi(self::createClient()->getContainer(), $eventDispatcher);
         $this->api->setConfig([
             'ldap' => [
                 'attributes' => [
@@ -84,7 +88,7 @@ class PersonTest extends ApiTestCase
         }
     }
 
-    public function testLDAPApiProvider()
+    public function testPersonFromUserItemPostEvent()
     {
         $user = new AdldapUser([
             'cn' => ['foobar'],
-- 
GitLab