Browse Source

Merge branch 'mongo'

master
Anton Grebnev 13 years ago
parent
commit
4d4e338611
  1. 9
      model/MongoStatement.php
  2. 15
      tests/model/MongoDriverTest.php
  3. 37
      tests/model/MongoStatementTest.php

9
model/MongoStatement.php

@ -16,6 +16,15 @@ class MongoStatement extends DbStatement
protected $insertId = false; protected $insertId = false;
public function count()
{
if ($this->result instanceof MongoCursor) {
return $this->result->count();
} else {
throw new GeneralException('MongoStatement error. Impossible count result of opened cursor.');
}
}
public function order($sort = array()) public function order($sort = array())
{ {
if ($this->result instanceof MongoCursor) { if ($this->result instanceof MongoCursor) {

15
tests/model/MongoDriverTest.php

@ -197,6 +197,21 @@ class MongoDriverTest extends PHPUnit_Framework_TestCase
* @runInSeparateProcess * @runInSeparateProcess
* @group Mongo * @group Mongo
*/ */
public function testCursorCount()
{
if (!defined('DEBUG')) {
define('DEBUG', false);
}
$mongo = new MongoDriver($this->conf);
$this->assertEquals(5, $mongo->find('items')->count(5));
$this->assertCount(3, $mongo->find('items')->limit(3)->fetchAll());
$this->assertEquals(5, $mongo->count('items'));
}
/**
* @runInSeparateProcess
* @group Mongo
*/
public function testGet() public function testGet()
{ {
if (!defined('DEBUG')) { if (!defined('DEBUG')) {

37
tests/model/MongoStatementTest.php

@ -338,6 +338,43 @@ class MongoStatementTest extends PHPUnit_Framework_TestCase
* @runInSeparateProcess * @runInSeparateProcess
* @group Mongo * @group Mongo
*/ */
public function testCount()
{
if (!defined('DEBUG')) {
define('DEBUG', true);
}
$this->setDriverGetConnectionMethod()->setRequestForFetch();
$this->stmt->execute();
$this->assertSame(10, $this->stmt->count());
$this->stmt->fetch();
}
/**
* @runInSeparateProcess
* @group Mongo
*/
public function testCountException()
{
if (!defined('DEBUG')) {
define('DEBUG', true);
}
$this->setDriverGetConnectionMethod();
$this->request
->expects($this->once())
->method('execute')
->will($this->returnValue(array('some' => 'val')));
$this->stmt->execute();
$this->setExpectedException('GeneralException', 'MongoStatement error. Impossible count result of opened cursor');
$this->stmt->count();
}
/**
* @runInSeparateProcess
* @group Mongo
*/
public function testOrderException() public function testOrderException()
{ {
if (!defined('DEBUG')) { if (!defined('DEBUG')) {

Loading…
Cancel
Save