Chris@0: getMockForTrait('Drupal\rest\Plugin\rest\resource\EntityResourceValidationTrait'); Chris@0: Chris@0: $method = new \ReflectionMethod($trait, 'validate'); Chris@0: $method->setAccessible(TRUE); Chris@0: Chris@0: $violations = $this->prophesize(EntityConstraintViolationList::class); Chris@0: $violations->filterByFieldAccess()->shouldBeCalled()->willReturn([]); Chris@0: $violations->count()->shouldBeCalled()->willReturn(0); Chris@0: Chris@0: $entity = $this->prophesize(Node::class); Chris@0: $entity->validate()->shouldBeCalled()->willReturn($violations->reveal()); Chris@0: Chris@0: $method->invoke($trait, $entity->reveal()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::validate Chris@0: */ Chris@0: public function testFailedValidate() { Chris@0: $violation1 = $this->prophesize(ConstraintViolationInterface::class); Chris@0: $violation1->getPropertyPath()->willReturn('property_path'); Chris@0: $violation1->getMessage()->willReturn('message'); Chris@0: Chris@0: $violation2 = $this->prophesize(ConstraintViolationInterface::class); Chris@0: $violation2->getPropertyPath()->willReturn('property_path'); Chris@0: $violation2->getMessage()->willReturn('message'); Chris@0: Chris@0: $entity = $this->prophesize(User::class); Chris@0: Chris@0: $violations = $this->getMockBuilder(EntityConstraintViolationList::class) Chris@0: ->setConstructorArgs([$entity->reveal(), [$violation1->reveal(), $violation2->reveal()]]) Chris@0: ->setMethods(['filterByFieldAccess']) Chris@0: ->getMock(); Chris@0: Chris@0: $violations->expects($this->once()) Chris@0: ->method('filterByFieldAccess') Chris@0: ->will($this->returnValue([])); Chris@0: Chris@0: $entity->validate()->willReturn($violations); Chris@0: Chris@0: $trait = $this->getMockForTrait('Drupal\rest\Plugin\rest\resource\EntityResourceValidationTrait'); Chris@0: Chris@0: $method = new \ReflectionMethod($trait, 'validate'); Chris@0: $method->setAccessible(TRUE); Chris@0: Chris@0: $this->setExpectedException(UnprocessableEntityHttpException::class); Chris@0: Chris@0: $method->invoke($trait, $entity->reveal()); Chris@0: } Chris@0: Chris@0: }