/** * @test */ public function hasRuleOfType() { $rule_1 = new BinaryRule(true); $rule_2 = new AuthenticatedPercentageRule(20, 'some_feature'); $ruleset = new Ruleset(); $this->assertFalse($ruleset->hasRuleOfType(BinaryRule::RULE_NAME)); $this->assertFalse($ruleset->hasRuleOfType(AuthenticatedPercentageRule::RULE_NAME)); $ruleset->addRule($rule_1); $this->assertTrue($ruleset->hasRuleOfType(BinaryRule::RULE_NAME)); $ruleset->addRule($rule_2); $this->assertTrue($ruleset->hasRuleOfType(BinaryRule::RULE_NAME)); $this->assertTrue($ruleset->hasRuleOfType(AuthenticatedPercentageRule::RULE_NAME)); $this->assertFalse($ruleset->hasRuleOfType(IdentifierRule::RULE_NAME)); }
/** * {@inheritdoc} */ public function getRuleset($feature) { if (isset($this->_generated_rulesets[$feature])) { return $this->_generated_rulesets[$feature]; } $ruleset = new Ruleset(); if (!isset($this->_config[$feature])) { return $ruleset; } $raw_rules = $this->_config[$feature]; foreach ($raw_rules as $rule_info) { $rule = RuleFactory::create($rule_info['type'], $rule_info['params'], $feature); $ruleset->addRule($rule); } // foreach raw_rules $this->_generated_rulesets[$feature] = $ruleset; return $ruleset; }