public function testPaginate()
 {
     for ($i = 0; $i < 10; $i++) {
         $u = new User();
         $u->save(array('User' => array('username' => 'User ' . $i, 'password' => 'password ' . $i, 'salary' => 100 + $i)));
     }
     $u->flush();
     $this->Controller->request->params['pass'] = array('1');
     $this->Controller->request->query = array();
     $this->Controller->constructClasses();
     $this->Controller->Paginator->settings = array('limit' => 3);
     $results = Set::extract($this->Controller->Paginator->paginate(), '{s}.User.username');
     $this->assertEqual($results, array('User 0', 'User 1', 'User 2'));
     $this->Controller->request->params['named'] = array('sort' => 'salary', 'direction' => 'desc');
     $results = Set::extract($this->Controller->Paginator->paginate(), '{s}.User.username');
     $this->assertEqual($this->Controller->params['paging']['User']['page'], 1);
     $this->assertEqual($results, array('User 9', 'User 8', 'User 7'));
     $this->Controller->request->params['named'] = array('sort' => 'User.salary', 'direction' => 'desc', 'page' => 2);
     $results = Set::extract($this->Controller->Paginator->paginate(), '{s}.User.username');
     $this->assertEqual($this->Controller->params['paging']['User']['page'], 2);
     $this->assertEqual($results, array('User 6', 'User 5', 'User 4'));
     $this->Controller->request->params['named'] = array();
     $this->Controller->Paginator->settings = array('topPaid', 'limit' => 3);
     $results = Set::extract($this->Controller->Paginator->paginate(), '{s}.User.username');
     $this->assertEqual($this->Controller->params['paging']['User']['page'], 1);
     $this->assertEqual($results, array('User 9', 'User 8', 'User 7'));
 }
 public function testCreatedModified()
 {
     $user = new User();
     $user->username = '******';
     $user->save();
     $user->flush();
     $this->assertTrue($user->created instanceof DateTime);
     $this->assertEquals(date('Y-m-d H:i'), $user->created->format('Y-m-d H:i'));
     $this->assertNull($user->modified);
     $user->username = '******';
     $user->save();
     $user->flush();
     $this->assertTrue($user->modified instanceof DateTime);
     $this->assertEquals(date('Y-m-d H:i'), $user->modified->format('Y-m-d H:i'));
     $user->phonenumbers[] = new PhoneNumber('555-444-44');
     $user->save();
     $user->flush();
     $this->assertTrue($user->phonenumbers[0]->created instanceof DateTime);
     $user->phonenumbers[0]->phonenumber = '444-555-55';
     $user->save();
     $user->flush();
     $this->assertTrue($user->phonenumbers[0]->modified instanceof DateTime);
 }