77 lines
2.3 KiB
PHP

<?php
namespace Chill\PersonBundle\Tests\Validator\Household;
use Chill\PersonBundle\Entity\Household\HouseholdMember;
use Chill\PersonBundle\Entity\Household\Position;
use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Validator\Constraints\Household\MaxHolderValidator;
use Chill\PersonBundle\Validator\Constraints\Household\MaxHolder;
use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
class MaxHolderValidatorTest extends ConstraintValidatorTestCase
{
/**
* @dataProvider provideInvalidHousehold
*/
public function testHouseholdInvalid(Household $household, $parameters)
{
$constraint = $this->getConstraint();
$this->validator->validate($household, $constraint);
$this->buildViolation('msg')
->setParameters($parameters)
->assertRaised()
;
}
protected function getConstraint()
{
return new MaxHolder([
'message' => 'msg',
'messageInfinity' => 'msgInfinity'
]);
}
public function provideInvalidHousehold()
{
$household = new Household();
$position = (new Position())
->setAllowHolder(true);
$household
->addMember(
(new HouseholdMember())
->setHolder(true)
->setStartDate(new \DateTimeImmutable('2010-01-01'))
->setEndDate(new \DateTimeImmutable('2010-12-01'))
)
->addMember(
(new HouseholdMember())
->setHolder(true)
->setStartDate(new \DateTimeImmutable('2010-06-01'))
->setEndDate(new \DateTimeImmutable('2010-07-01'))
)
->addMember(
(new HouseholdMember())
->setHolder(true)
->setStartDate(new \DateTimeImmutable('2010-01-01'))
->setEndDate(new \DateTimeImmutable('2010-12-01'))
)
;
yield [
$household,
[
'{{ start }}' => '01-06-2010',
'{{ end }}' => '01-07-2010'
]
];
}
protected function createValidator()
{
return new MaxHolderValidator();
}
}