public function testEvaluate(NewObjectStateLimitation $limitation, ValueObject $object, array $targets, $expected)
{
// Need to create inline instead of depending on testConstruct() to get correct mock instance
$limitationType = $this->testConstruct();
$userMock = $this->getUserMock();
$userMock->expects($this->never())->method($this->anything());
$persistenceMock = $this->getPersistenceMock();
$persistenceMock->expects($this->never())->method($this->anything());
$value = $limitationType->evaluate($limitation, $userMock, $object, $targets);
self::assertInternalType('boolean', $value);
self::assertEquals($expected, $value);
}