/** * {@inheritdoc} */ public function vote($parameter = null, $user = null, array $additional = []) { if (empty($parameter)) { return false; } $language = new ExpressionLanguage(); if (!array_key_exists('user', $additional)) { $additional['user'] = $user; } return FeatureJudge::isTrue($language->evaluate($parameter, $additional)); }
/** * @dataProvider featureWithMultipleRulesAndAFilterProvider * * @param $expected * @param $voterOneResult * @param $voterTwoResult */ public function testFeatureWithMultipleRulesAndAFilter($expected, $voterOneResult, $voterTwoResult) { $voterOneMock = \Mockery::mock('jlis\\Judge\\Contracts\\VoterInterface'); $voterTwoMock = clone $voterOneMock; /* @noinspection PhpMethodParametersCountMismatchInspection */ $voterOneMock->shouldReceive('vote')->once()->andReturn($voterOneResult); /* @noinspection PhpMethodParametersCountMismatchInspection */ $voterTwoMock->shouldReceive('vote')->once()->andReturn($voterTwoResult); $adapter = $this->getAdapter(['existingFeature' => [['value' => true, 'filters' => ['voter_one']], ['value' => true, 'filters' => ['voter_two']]]]); $judge = new FeatureJudge($adapter, array('voter_one' => $voterOneMock, 'voter_two' => $voterTwoMock)); static::assertEquals($expected, $judge->decide('existingFeature')); }