getConstraint(); $personHasCenter = (new Person())->setCenter(new Center()); $personNoCenter = new Person(); $this->validator->validate($personHasCenter, $constraint); $this->assertNoViolation(); $this->validator->validate($personNoCenter, $constraint); $this->buildViolation('msg') ->atPath('property.path.center') ->assertRaised(); } protected function createValidator() { $parameterBag = $this->createMock(ParameterBagInterface::class); $parameterBag ->method('get') ->with($this->equalTo('chill_person')) ->willReturn([ 'validation' => [ 'center_required' => true, ], ]); $prophecy = $this->prophesize(CenterResolverManagerInterface::class); $prophecy->resolveCenters(Argument::type(Person::class), Argument::any())->will(static function ($args) { $center = $args[0]->getCenter(); if ($center instanceof Center) { return [$center]; } return []; }); return new PersonHasCenterValidator($parameterBag, $prophecy->reveal()); } protected function getConstraint() { return new PersonHasCenter([ 'message' => 'msg', ]); } }