/**
  * @return CompositeAction
  */
 public function build()
 {
     $actions = $this->actions;
     ksort($actions);
     $result = new CompositeAction();
     foreach ($actions as $arr) {
         foreach ($arr as $action) {
             $result->add($action);
         }
     }
     return $result;
 }
    public function test_to_string_returns_json_debug_tree_string()
    {
        $innerComposite = new CompositeAction([new FooAction(), new BarAction()]);
        $this->assertCount(2, $innerComposite->getChildren());
        $outerComposite = new CompositeAction([new FooAction(), $innerComposite, new BarAction()]);
        $this->assertCount(3, $outerComposite->getChildren());
        $actualValue = (string) $outerComposite;
        $expectedValue = <<<EOT
{
    "LightSaml\\\\Action\\\\CompositeAction": {
        "LightSaml\\\\Tests\\\\Mock\\\\Action\\\\FooAction": [],
        "LightSaml\\\\Action\\\\CompositeAction": {
            "LightSaml\\\\Tests\\\\Mock\\\\Action\\\\FooAction": [],
            "LightSaml\\\\Tests\\\\Mock\\\\Action\\\\BarAction": []
        },
        "LightSaml\\\\Tests\\\\Mock\\\\Action\\\\BarAction": []
    }
}
EOT;
        $this->assertEquals($expectedValue, $actualValue);
    }