コード例 #1
0
 public function testBrowseWithOrderRightParams()
 {
     $routePermissions = [];
     for ($i = 0; $i < 10; ++$i) {
         $routePermissions[] = factory(RoutePermission::class)->create(['route' => 'Route ' . $i, 'permissions' => json_encode(['permissions' . $i]), 'roles' => json_encode(['roles' . $i])]);
     }
     $routePermissionsID = RoutePermission::select('*')->orderBy('id', 'desc')->get();
     $routePermissionsRoute = RoutePermission::select('*')->orderBy('permissions', 'desc')->get();
     $routePermissionsPermissions = RoutePermission::select('*')->orderBy('roles', 'desc')->get();
     // check order route permissions with full input
     $res = $this->call('GET', '/routePermissions?sort=route&direction=desc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($routePermissionsRoute); ++$i) {
         $this->assertEquals($routePermissionsRoute[$i]->id, $results->entities[$i]->id);
     }
     $res = $this->call('GET', '/routePermissions?sort=route&direction=asc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($routePermissionsRoute); ++$i) {
         $this->assertEquals($routePermissionsRoute[9 - $i]->id, $results->entities[$i]->id);
     }
     // check order route permission with other fields
     $res = $this->call('GET', '/routePermissions?sort=permissions');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 0; $i < count($routePermissionsPermissions); ++$i) {
         $this->assertEquals($routePermissionsPermissions[$i]->id, $results->entities[$i]->id);
     }
     // check order route permissions with equals value of order field, route permission is sorted follow id field with desc
     $routePermissions = [];
     for ($i = 0; $i < 10; ++$i) {
         if (in_array($i, [2, 4, 6])) {
             $routePermissions[] = factory(RoutePermission::class)->create(['permissions' => json_encode(['permissions']), 'roles' => json_encode(['roles' . $i])]);
         }
         $routePermissions[] = factory(RoutePermission::class)->create(['permissions' => json_encode(['permissions' . $i]), 'roles' => json_encode(['roles' . $i])]);
     }
     $routePermissions1 = RoutePermission::where('route', '=', ['permissions'])->orderBy('id', 'desc')->get();
     $routePermissions2 = RoutePermission::where('route', '<>', ['permissions'])->orderBy('order', 'asc')->get();
     $routePermissions = array_merge((array) $routePermissions1, (array) $routePermissions2);
     $res = $this->call('GET', '/routePermissions?sort=permissions&direction=asc');
     $this->assertEquals(200, $res->getStatusCode());
     $results = json_decode($res->getContent());
     for ($i = 1; $i < count($routePermissions); ++$i) {
         $this->assertEquals($routePermissions[$i]->id, $results->entities[$i]->id);
     }
 }