public function testBrowseWithOrderRightParams()
 {
     $permissions = [];
     for ($i = 0; $i < 10; ++$i) {
         $permissions[] = factory(Permission::class)->create(['name' => 'Name ' . $i, 'display_name' => 'Display name ' . $i]);
     }
     $permissionsID = Permission::select('*')->orderBy('id', 'desc')->get();
     $permissionsDisplayName = Permission::select('*')->orderBy('display_name', 'desc')->get();
     $permissionsName = Permission::select('*')->orderBy('name', 'desc')->get();
     // check order permissions with full input
     $res = $this->call('GET', '/permissions?sort=name&direction=desc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($permissionsName); ++$i) {
         $this->assertEquals($permissionsName[$i]->id, $results->entities[$i]->id);
     }
     $res = $this->call('GET', '/permissions?sort=name&direction=asc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($permissionsName); ++$i) {
         $this->assertEquals($permissionsName[9 - $i]->id, $results->entities[$i]->id);
     }
     // check order permission with other fields
     $res = $this->call('GET', '/permissions?sort=display_name');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($permissionsDisplayName); ++$i) {
         $this->assertEquals($permissionsDisplayName[$i]->id, $results->entities[$i]->id);
     }
     // check order permissions with equals value of order field, permission is sorted follow id field with desc
     $permissions = [];
     for ($i = 0; $i < 10; ++$i) {
         if (in_array($i, [2, 4, 6])) {
             $permissions[] = factory(Permission::class)->create(['display_name' => 'A']);
         }
         $permissions[] = factory(Permission::class)->create();
     }
     $permissions1 = Permission::where('display_name', '=', 'A')->orderBy('id', 'desc')->get();
     $permissions2 = Permission::where('display_name', '<>', 'A')->orderBy('order', 'asc')->get();
     $permissions = array_merge((array) $permissions1, (array) $permissions2);
     $res = $this->call('GET', '/permissions?sort=display_name&direction=asc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 1; $i < count($permissions); ++$i) {
         $this->assertEquals($permissions[$i]->id, $results->entities[$i]->id);
     }
 }