public function testLoadFromYaml() { $yaml = <<<YML features: - name: some-feature conditions: - name: operator-condition key: user_id operator: name: greater-than value: 41 status: conditionally-active - name: some-feature2 conditions: - name: operator-condition key: user_id operator: name: greater-than value: 42 status: conditionally-active YML; $serializer = new Serializer(); $features = $serializer->deserialize(Yaml::parse($yaml)['features']); $manager = new FeatureManager($features); $context = new Context(); $context->set('user_id', 42); $this->assertTrue($manager->isActive('some-feature', $context)); }
public function testVerifyIfFeatureExistsAndIsEnabled() { $conditions = new ArrayList(); $manager = new FeatureManager(); $manager->addFeature(new Feature('feature1', $conditions)); $feature = $manager->get('feature1'); $this->assertInstanceOf(FeatureInterface::class, $feature); }
public function testLoadFromYaml() { $language = new ExpressionLanguage(); $expression = new ExpressionCondition('user["active"] and product["price"] / 100 >= 0.2', $language); $manager = new FeatureManager(); $manager->addFeature(new Feature('feature1', new ArrayList([$expression]))); $context = new Context(); $context->set('user', ['active' => true]); $context->set('product', ['price' => 30]); $this->assertTrue($manager->isActive('feature1', $context)); }