eventListener created and tested for firstname, lastname and altnames

This commit is contained in:
Julie Lenaerts
2021-10-06 12:16:45 +02:00
parent 7d8f380050
commit 0c4ea81550
7 changed files with 135 additions and 44 deletions

View File

@@ -0,0 +1,68 @@
<?php
use PHPUnit\Framework\TestCase;
use Chill\PersonBundle\EventListener\PersonEventListener;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\PersonAltName;
use Doctrine\Persistence\Event\LifecycleEventArgs;
class PersonCreateEventTest extends TestCase
{
/**
* @dataProvider generateNames
*/
public function testOnPrePersist($firstname, $firstnameExpected, $lastname, $lastnameExpected)
{
$listener = new PersonEventListener();
$person = new Person();
$person->setFirstName($firstname);
$person->setLastName($lastname);
$args = $this->createMock(LifecycleEventArgs::class);
$args->method('getObject')
->willReturn($person);
$listener->onPrePersist($args);
$this->assertEquals($firstnameExpected, $person->getFirstName());
$this->assertEquals($lastnameExpected, $person->getLastName());
}
/**
* @dataProvider generateAltNames
*/
public function testAltNamesOnPrePersist($altname, $altnameExpected)
{
$listener = new PersonEventListener();
$personAltname = new PersonAltName();
$personAltname->setLabel($altname);
$args = $this->createMock(LifecycleEventArgs::class);
$args->method('getObject')
->willReturn($personAltname);
$listener->onPrePersist($args);
$this->assertEquals($altnameExpected, $personAltname->getLabel());
}
public function generateNames(): iterator
{
yield ['julie', 'Julie', 'lenaerts', 'LENAERTS'];
yield ['jean-marie', 'Jean-Marie', 'lenaerts', 'LENAERTS'];
yield ['vinCENT', 'Vincent', 'van gogh', 'VAN GOGH'];
yield ['Vincent', 'Vincent', 'van Gogh', 'VAN GOGH'];
yield ['André marie', 'André Marie', 'Bah', 'BAH'];
}
public function generateAltNames(): iterator
{
yield ['vinCENT', 'Vincent'];
yield ['jean-marie', 'Jean-Marie'];
}
}