PersonAddressMoveEvent on household move (wip)

This commit is contained in:
2022-02-19 14:04:51 +01:00
parent 8675bb65c1
commit caa63ea97a
11 changed files with 237 additions and 48 deletions

View File

@@ -121,7 +121,7 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
$eventSubscriber->resetPeriodLocation($event);
$this->assertSame($previousAddress, $period->getAddressLocation());
$this->assertNotNull($period->getAddressLocation());
$this->assertNull($period->getPersonLocation());
}
@@ -166,7 +166,49 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
$eventSubscriber->resetPeriodLocation($event);
$this->assertSame($previousAddress, $period->getAddressLocation());
$this->assertNotNull($period->getAddressLocation());
$this->assertNull($period->getPersonLocation());
}
public function testEventPersonChangeAddressInThePast()
{
$person = new Person();
$period = new AccompanyingPeriod();
$period
->setStep(AccompanyingPeriod::STEP_CONFIRMED)
->setPersonLocation($person)
->addPerson($person)
->setUser(new User());
$this->forceIdToPeriod($period);
$membership = new HouseholdMember();
$membership
->setPerson($person)
->setHousehold($household = new Household())
->setStartDate(new DateTimeImmutable('1 year ago'))
;
$previousAddress = new Address();
$previousAddress->setValidFrom(new DateTime('6 months ago'));
$household->addAddress($previousAddress);
$newAddress = new Address();
$newAddress->setValidFrom(new DateTime('tomorrow'));
$household->addAddress($newAddress);
$event = new PersonAddressMoveEvent($person);
$event
->setPreviousAddress($household->getPreviousAddressOf($newAddress))
->setNextAddress($newAddress)
;
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
$this->assertNotNull($period->getAddressLocation());
$this->assertNull($period->getPersonLocation());
}
@@ -201,7 +243,7 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
$eventSubscriber->resetPeriodLocation($event);
$this->assertSame($previousAddress, $period->getAddressLocation());
$this->assertNotNull($period->getAddressLocation());
$this->assertNull($period->getPersonLocation());
}