Browse Source

added test for findAndModify if no item in collection and test for eval

master
Anton Grebnev 12 years ago
parent
commit
d5ae133478
  1. 3
      model/MongoStatement.php
  2. 35
      tests/model/MongoDriverTest.php
  3. 4
      tests/model/MongoStatementTest.php

3
model/MongoStatement.php

@ -135,6 +135,7 @@ class MongoStatement extends DbStatement
*/
protected function driverExecute($request)
{
$this->result = false;
$mongo = $this->driver->getConnection();
if ($mongo instanceof Mongo) {
if (DEBUG) {
@ -181,4 +182,4 @@ class MongoStatement extends DbStatement
{
return $this->insertId;
}
}
}

35
tests/model/MongoDriverTest.php

@ -369,6 +369,41 @@ class MongoDriverTest extends PHPUnit_Framework_TestCase
* @runInSeparateProcess
* @group Mongo
*/
public function testFindAndModifyNoItem()
{
if (!defined('DEBUG')) {
define('DEBUG', false);
}
$mongo = new MongoDriver($this->conf);
$this->assertEquals(10, $mongo->get('items', array('name' => 'bread'))->fetch()->quantity);
$result = $mongo->findAndModify('items', array('name' => 'breading'), array('$set' => array('quantity' => 20)))->fetch();
$this->assertFalse($result);
$this->assertEquals(10, $mongo->get('items', array('name' => 'bread'))->fetch()->quantity);
}
/**
* @runInSeparateProcess
* @group Mongo
*/
public function testEvalCommand()
{
if (!defined('DEBUG')) {
define('DEBUG', false);
}
$mongo = new MongoDriver($this->conf);
$result = $mongo->command('items', array('$eval' => 'function() { return db.items.count();}'));
$this->assertEquals(5, $result->fetch());
$this->assertEquals(5, $mongo->count('items'));
$result = $mongo->command('items', array('$eval' => 'function() { return "HELLO!";}'));
$this->assertEquals("HELLO!", $result->fetch());
}
/**
* @runInSeparateProcess
* @group Mongo
*/
public function testEval()
{
if (!defined('DEBUG')) {

4
tests/model/MongoStatementTest.php

@ -245,10 +245,10 @@ class MongoStatementTest extends PHPUnit_Framework_TestCase
$this->request
->expects($this->once())
->method('execute')
->will($this->returnValue(array('some' => 'val')));
->will($this->returnValue(array('retval' => 'val')));
$this->stmt->execute();
$this->assertFalse($this->stmt->fetch());
$this->assertEquals('val', $this->stmt->fetch());
}
/**

Loading…
Cancel
Save