Commit 7627496f authored by Jens Segers's avatar Jens Segers

Moving increments tests for #97

parent be513076
...@@ -396,10 +396,12 @@ class Builder extends \Illuminate\Database\Query\Builder { ...@@ -396,10 +396,12 @@ class Builder extends \Illuminate\Database\Query\Builder {
$query = array( $query = array(
'$inc' => array($column => $amount) '$inc' => array($column => $amount)
); );
if(!empty($extra))
if (!empty($extra))
{ {
$query['$set'] = $extra; $query['$set'] = $extra;
} }
// Protect // Protect
$this->whereNotNull($column); $this->whereNotNull($column);
......
...@@ -506,4 +506,53 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase { ...@@ -506,4 +506,53 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(2, count($results)); $this->assertEquals(2, count($results));
} }
public function testIncrement()
{
DB::collection('users')->insert(array(
array('name' => 'John Doe', 'age' => 30, 'note' => 'adult'),
array('name' => 'Jane Doe', 'age' => 10, 'note' => 'minor'),
array('name' => 'Robert Roe', 'age' => null),
array('name' => 'Mark Moe'),
));
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(30, $user['age']);
DB::collection('users')->where('name', 'John Doe')->increment('age');
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(31, $user['age']);
DB::collection('users')->where('name', 'John Doe')->decrement('age');
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(30, $user['age']);
DB::collection('users')->where('name', 'John Doe')->increment('age', 5);
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(35, $user['age']);
DB::collection('users')->where('name', 'John Doe')->decrement('age', 5);
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(30, $user['age']);
DB::collection('users')->where('name', 'Jane Doe')->increment('age', 10, array('note' => 'adult'));
$user = DB::collection('users')->where('name', 'Jane Doe')->first();
$this->assertEquals(20, $user['age']);
$this->assertEquals('adult', $user['note']);
DB::collection('users')->where('name', 'John Doe')->decrement('age', 20, array('note' => 'minor'));
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(10, $user['age']);
$this->assertEquals('minor', $user['note']);
DB::collection('users')->increment('age');
$user = DB::collection('users')->where('name', 'John Doe')->first();
$this->assertEquals(11, $user['age']);
$user = DB::collection('users')->where('name', 'Jane Doe')->first();
$this->assertEquals(21, $user['age']);
$user = DB::collection('users')->where('name', 'Robert Roe')->first();
$this->assertEquals(null, $user['age']);
$user = DB::collection('users')->where('name', 'Mark Moe')->first();
$this->assertFalse(isset($user['age']));
}
} }
...@@ -149,37 +149,6 @@ class QueryTest extends PHPUnit_Framework_TestCase { ...@@ -149,37 +149,6 @@ class QueryTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(37, $user->age); $this->assertEquals(37, $user->age);
} }
public function testIncrements()
{
User::where('name', 'John Doe')->increment('age');
User::where('name', 'John Doe')->increment('age', 2, array('title' => 'user'));
$user = User::where('name', 'John Doe')->first();
$this->assertEquals(38, $user->age);
$this->assertEquals('user', $user->title);
User::where('name', 'John Doe')->decrement('age');
$num = User::where('name', 'John Doe')->decrement('age', 2, array('title' => 'admin'));
$user = User::where('name', 'John Doe')->first();
$this->assertEquals(35, $user->age);
$this->assertEquals('admin', $user->title);
$this->assertEquals(1, $num);
User::increment('age');
User::increment('age', 2);
$user = User::where('name', 'Mark Moe')->first();
$this->assertEquals(26, $user->age);
User::decrement('age', 2);
$num = User::decrement('age');
$user = User::where('name', 'Mark Moe')->first();
$this->assertEquals(23, $user->age);
$this->assertEquals(8, $num);
}
public function testGroupBy() public function testGroupBy()
{ {
$users = User::groupBy('title')->get(); $users = User::groupBy('title')->get();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment