Example #1
0
 /**
  * Test that running a factory build on a valid configuration returns a tree
  * @return void
  */
 public function testValidFactory()
 {
     $context = new GenericContext();
     $treeJson = array('segmentName' => 'Root', 'segmentId' => 1, 'children' => array(array('segmentName' => 'Child #1', 'segmentId' => 2, 'children' => array(), 'Condition' => array()), array('segmentName' => 'Default', 'segmentId' => 3, 'children' => array(), 'Condition' => null)));
     $factory = new JsonFactory($treeJson, $context);
     $tree = $factory->build();
     $this->assertInstanceOf('Verdict\\Segment\\Tree', $tree);
 }
Example #2
0
 /**
  * Test validating an invalid tree setup - non truth condition on a default node
  * @expectedException RuntimeException
  */
 public function testValidateInvalidTreeInvalidConditionType()
 {
     $context = new GenericContext();
     $treeJson = array('segmentName' => 'Root', 'segmentId' => 1, 'children' => array(array('segmentName' => 'Child #1', 'segmentId' => 2, 'children' => array(), 'Condition' => array('nodeType' => 'thisisnotavalidnodetype', 'nodeDriver' => 'equals', 'contextKey' => 'Stuff', 'configValue' => 0)), array('segmentName' => 'Default', 'segmentId' => 3, 'children' => array(), 'Condition' => null)));
     $factory = new JsonFactory($treeJson, $context);
     $validateService = new Validator($factory->build());
     $validateService->validate();
 }
Example #3
0
 /**
  * Test running all leaf nodes, making sure we only match valid conditions
  * @return void
  */
 public function testRunAllLeafNodes()
 {
     $factory = new SegmentFactory(array('segmentId' => '1', 'segmentName' => 'Root', 'Condition' => null, 'children' => array(array('segmentId' => '2', 'segmentName' => 'Def 1', 'Condition' => array('nodeType' => 'comparison', 'nodeDriver' => 'equals', 'contextKey' => 'Namespaced::Number', 'configValue' => 2), 'children' => array(array('segmentId' => '3', 'segmentName' => 'Def 2', 'Condition' => array('nodeType' => 'comparison', 'nodeDriver' => 'equals', 'contextKey' => 'Namespaced::Number', 'configValue' => 3), 'children' => array()))), array('segmentId' => '4', 'segmentName' => 'Def 3', 'Condition' => array('nodeType' => 'comparison', 'nodeDriver' => 'truth', 'contextKey' => null, 'configValue' => null), 'children' => array()), array('segmentId' => '5', 'segmentName' => 'Def 4', 'Condition' => array('nodeType' => 'comparison', 'nodeDriver' => 'truth', 'contextKey' => null, 'configValue' => null), 'children' => array(array('segmentId' => '6', 'segmentName' => 'Def 5', 'Condition' => array('nodeType' => 'comparison', 'nodeDriver' => 'truth', 'contextKey' => null, 'configValue' => null), 'children' => array()))))), $this->context);
     $tree = $factory->build();
     $matchingNodes = $tree->runAllLeafNodes();
     $this->assertEquals(count($matchingNodes), 2);
     foreach ($matchingNodes as $node) {
         $this->assertTrue($node->isLeafNode());
     }
 }