/** * 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); })); }
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()); }
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()); }