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

@@ -11,9 +11,11 @@ declare(strict_types=1);
namespace Entity\Household;
use Chill\MainBundle\Entity\Address;
use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Entity\Household\HouseholdComposition;
use DateTimeImmutable;
use DateTime;
use PHPUnit\Framework\TestCase;
/**
@@ -44,4 +46,43 @@ final class HouseholdTest extends TestCase
$this->assertEquals(new DateTimeImmutable('2021-12-31'), $second->getStartDate());
$this->assertEquals(new DateTimeImmutable('2021-12-31'), $inside->getEndDate());
}
public function testHouseholdAddressConsistent()
{
$household = new Household();
$lastAddress = new Address();
$lastAddress->setValidFrom($yesterday = new DateTime('yesterday'));
$household->addAddress($lastAddress);
$this->assertNull($lastAddress->getValidTo());
$this->assertEquals($yesterday, $lastAddress->getValidFrom());
$previousAddress = new Address();
$previousAddress->setValidFrom($oneMonthAgo = new DateTime('1 month ago'));
$household->addAddress($previousAddress);
$addresses = $household->getAddressesOrdered();
$this->assertSame($previousAddress, $addresses[0]);
$this->assertSame($lastAddress, $addresses[1]);
$this->assertEquals($oneMonthAgo, $previousAddress->getValidFrom());
$this->assertEquals($yesterday, $previousAddress->getValidTo());
$this->assertEquals($yesterday, $lastAddress->getValidFrom());
$this->assertNull($lastAddress->getValidTo());
$futureAddress = new Address();
$futureAddress->setValidFrom(new DateTime('tomorrow'));
$household->addAddress($futureAddress);
$addresses = $household->getAddressesOrdered();
$this->assertSame($previousAddress, $addresses[0]);
$this->assertSame($lastAddress, $addresses[1]);
$this->assertSame($futureAddress, $addresses[2]);
$this->assertEquals($oneMonthAgo, $previousAddress->getValidFrom());
$this->assertEquals($yesterday, $previousAddress->getValidTo());
$this->assertEquals($yesterday, $lastAddress->getValidFrom());
$this->assertNull($lastAddress->getValidTo());
}
}