public function testBasicExample()
 {
     $results = AnalyzeFiles::directory($this->directory)->execute(function ($file) {
         $file->fileIs('sub1/sub1.php');
         $file->action(function ($action) {
             $action->whereNoSearch('Carlos');
             $action->whereSearch('Jorge');
             $action->replace('Jorge', 'Carlos');
         });
         $file->action(function ($action) {
             $action->whereSearch('Example1');
             $action->replace('Hi', 'Bye');
         });
     }, false);
     // For no executing
     $this->assertTrue(is_array($results));
     $this->assertTrue(is_array($results['sub1/sub1.php']));
     $this->assertEquals(2, count($results['sub1/sub1.php']));
     // Two actions
     $this->assertTrue(isset($results['sub1/sub1.php'][0]['requirements'][0]['function']));
     $this->assertTrue(isset($results['sub1/sub1.php'][0]['requirements'][0]['value']));
 }
 function testSelectSubdirectories()
 {
     $results = AnalyzeFiles::rules()->directory($this->directory)->create(function ($rules) {
         $rules->add(function ($data) {
             $data->fileEndsWith('.php');
             $data->filesInside(array('sub1', 'sub2'));
             $data->validation(function ($validation) {
                 $validation->whereSearch('Carlos');
             });
         });
     });
     $this->assertTrue(is_array($results));
     $this->assertFalse($results['sub1/sub1.php']['result']);
     $this->assertTrue($results['sub2/sub2.php']['result']);
 }