@@ -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}
0 commit comments