Skip to content

Commit 7627496

Browse files
committed
Moving increments tests for #97
1 parent be51307 commit 7627496

File tree

3 files changed

+52
-32
lines changed

3 files changed

+52
-32
lines changed

src/Jenssegers/Mongodb/Query/Builder.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,10 +396,12 @@ public function increment($column, $amount = 1, array $extra = array())
396396
$query = array(
397397
'$inc' => array($column => $amount)
398398
);
399-
if(!empty($extra))
399+
400+
if (!empty($extra))
400401
{
401402
$query['$set'] = $extra;
402403
}
404+
403405
// Protect
404406
$this->whereNotNull($column);
405407

tests/QueryBuilderTest.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,4 +506,53 @@ public function testOperators()
506506
$this->assertEquals(2, count($results));
507507
}
508508

509+
public function testIncrement()
510+
{
511+
DB::collection('users')->insert(array(
512+
array('name' => 'John Doe', 'age' => 30, 'note' => 'adult'),
513+
array('name' => 'Jane Doe', 'age' => 10, 'note' => 'minor'),
514+
array('name' => 'Robert Roe', 'age' => null),
515+
array('name' => 'Mark Moe'),
516+
));
517+
518+
$user = DB::collection('users')->where('name', 'John Doe')->first();
519+
$this->assertEquals(30, $user['age']);
520+
521+
DB::collection('users')->where('name', 'John Doe')->increment('age');
522+
$user = DB::collection('users')->where('name', 'John Doe')->first();
523+
$this->assertEquals(31, $user['age']);
524+
525+
DB::collection('users')->where('name', 'John Doe')->decrement('age');
526+
$user = DB::collection('users')->where('name', 'John Doe')->first();
527+
$this->assertEquals(30, $user['age']);
528+
529+
DB::collection('users')->where('name', 'John Doe')->increment('age', 5);
530+
$user = DB::collection('users')->where('name', 'John Doe')->first();
531+
$this->assertEquals(35, $user['age']);
532+
533+
DB::collection('users')->where('name', 'John Doe')->decrement('age', 5);
534+
$user = DB::collection('users')->where('name', 'John Doe')->first();
535+
$this->assertEquals(30, $user['age']);
536+
537+
DB::collection('users')->where('name', 'Jane Doe')->increment('age', 10, array('note' => 'adult'));
538+
$user = DB::collection('users')->where('name', 'Jane Doe')->first();
539+
$this->assertEquals(20, $user['age']);
540+
$this->assertEquals('adult', $user['note']);
541+
542+
DB::collection('users')->where('name', 'John Doe')->decrement('age', 20, array('note' => 'minor'));
543+
$user = DB::collection('users')->where('name', 'John Doe')->first();
544+
$this->assertEquals(10, $user['age']);
545+
$this->assertEquals('minor', $user['note']);
546+
547+
DB::collection('users')->increment('age');
548+
$user = DB::collection('users')->where('name', 'John Doe')->first();
549+
$this->assertEquals(11, $user['age']);
550+
$user = DB::collection('users')->where('name', 'Jane Doe')->first();
551+
$this->assertEquals(21, $user['age']);
552+
$user = DB::collection('users')->where('name', 'Robert Roe')->first();
553+
$this->assertEquals(null, $user['age']);
554+
$user = DB::collection('users')->where('name', 'Mark Moe')->first();
555+
$this->assertFalse(isset($user['age']));
556+
}
557+
509558
}

tests/QueryTest.php

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -149,37 +149,6 @@ public function testOrder()
149149
$this->assertEquals(37, $user->age);
150150
}
151151

152-
public function testIncrements()
153-
{
154-
User::where('name', 'John Doe')->increment('age');
155-
User::where('name', 'John Doe')->increment('age', 2, array('title' => 'user'));
156-
157-
$user = User::where('name', 'John Doe')->first();
158-
$this->assertEquals(38, $user->age);
159-
$this->assertEquals('user', $user->title);
160-
161-
User::where('name', 'John Doe')->decrement('age');
162-
$num = User::where('name', 'John Doe')->decrement('age', 2, array('title' => 'admin'));
163-
164-
$user = User::where('name', 'John Doe')->first();
165-
$this->assertEquals(35, $user->age);
166-
$this->assertEquals('admin', $user->title);
167-
$this->assertEquals(1, $num);
168-
169-
User::increment('age');
170-
User::increment('age', 2);
171-
172-
$user = User::where('name', 'Mark Moe')->first();
173-
$this->assertEquals(26, $user->age);
174-
175-
User::decrement('age', 2);
176-
$num = User::decrement('age');
177-
178-
$user = User::where('name', 'Mark Moe')->first();
179-
$this->assertEquals(23, $user->age);
180-
$this->assertEquals(8, $num);
181-
}
182-
183152
public function testGroupBy()
184153
{
185154
$users = User::groupBy('title')->get();

0 commit comments

Comments
 (0)