Example #1
0
 /**
  * Test multiple deletion through conditions.
  */
 public function testDeleteMany()
 {
     $this->loadFixtures(['Users', 'Profiles']);
     // Throws exceptions if no conditions applied
     try {
         User::deleteMany(function () {
             // Nothing
         });
         $this->assertTrue(false);
     } catch (Exception $e) {
         $this->assertTrue(true);
     }
     $this->assertEquals(3, User::deleteMany(function (Query $query) {
         $query->where('age', '>', 30);
     }));
 }
Example #2
0
 public function testUpdateWithOneToOne()
 {
     $this->loadFixtures(['Users', 'Profiles']);
     $user = User::find(1);
     $this->assertEquals(new User(['id' => 1, 'country_id' => 1, 'username' => 'miles', 'password' => '1Z5895jf72yL77h', 'email' => '*****@*****.**', 'firstName' => 'Miles', 'lastName' => 'Johnson', 'age' => 25, 'created' => '1988-02-26 21:22:34', 'modified' => null]), $user);
     $profile = $user->Profile;
     $this->assertEquals(new Profile(['id' => 4, 'user_id' => 1, 'lastLogin' => '2012-02-15 21:22:34', 'currentLogin' => '2013-06-06 19:11:03']), $profile);
     // Update records
     $time = time();
     $user->country_id = 3;
     $user->username = '******';
     $profile->currentLogin = $time;
     $user->link($profile);
     $this->assertEquals(1, $user->save(['validate' => false]));
     $this->assertEquals(new User(['id' => 1, 'country_id' => 3, 'username' => 'milesj', 'password' => '1Z5895jf72yL77h', 'email' => '*****@*****.**', 'firstName' => 'Miles', 'lastName' => 'Johnson', 'age' => 25, 'created' => '1988-02-26 21:22:34', 'modified' => null, 'Profile' => new Profile(['id' => 4, 'user_id' => 1, 'lastLogin' => '2012-02-15 21:22:34', 'currentLogin' => date('Y-m-d H:i:s', $time)])]), User::select()->with('Profile')->where('id', 1)->first());
 }
Example #3
0
 public function testValidate()
 {
     $this->loadFixtures('Users');
     $user = new User();
     $user->username = '******';
     // needs to be 5
     $this->assertEquals(0, $user->save());
     $this->assertEquals(['username' => 'Must be between 5 and 25 chars'], $user->getErrors());
     $user->username = '******';
     // good!
     $this->assertNotEquals(0, $user->save());
     $this->assertEquals([], $user->getErrors());
     $user->username = '******';
     // ignore validation
     $this->assertNotEquals(0, $user->save(['validate' => false]));
     $this->assertEquals([], $user->getErrors());
     // Now with multiple fields
     $user->username = '******';
     $user->firstName = 123;
     $user->lastName = 'abc';
     $this->assertEquals(0, $user->save());
     $this->assertEquals(['username' => 'Must be between 5 and 25 chars', 'firstName' => 'Must be alphabetical', 'lastName' => 'Must be a number'], $user->getErrors());
 }