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));
 }