|
|
<?php
/* * @copyright NetMonsters <team@netmonsters.ru> * @link http://netmonsters.ru * @package Majestic * @subpackage UnitTests * @since 2011-11-10 * * Unit tests for MongoDriver class */
require_once dirname(__FILE__) . '/../../model/DbDriver.php'; require_once dirname(__FILE__) . '/../../model/NoSqlDbDriver.php'; require_once dirname(__FILE__) . '/../../model/MongoDriver.php'; require_once dirname(__FILE__) . '/../../model/MongoDbCommand.php';
class MongoDbCommandTest extends PHPUnit_Framework_TestCase {
private $conf = array();
private $driver;
public function setUp() { $this->conf = array( 'hostname' => 'localhost', 'database' => 'test', 'username' => 'test', 'password' => '1234', 'port' => 27017 ); $this->driver = new MongoDriver($this->conf); $connection = $this->driver->getConnection();
$db = $connection->selectDB($this->conf['database']); $db->authenticate($this->conf['username'], $this->conf['password']); $collection = 'items'; $db->dropCollection($collection); }
public function testCommandFactory() { $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND); $this->assertInstanceOf('MongoDbCommand', $cmd); $this->assertInstanceOf('FindMongoCommand', $cmd); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT); $this->assertInstanceOf('MongoDbCommand', $cmd); $this->assertInstanceOf('InsertMongoCommand', $cmd); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::UPDATE); $this->assertInstanceOf('MongoDbCommand', $cmd); $this->assertInstanceOf('UpdateMongoCommand', $cmd); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::REMOVE); $this->assertInstanceOf('MongoDbCommand', $cmd); $this->assertInstanceOf('RemoveMongoCommand', $cmd); }
public function testFindCommand() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'bread'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(0, $result->count()); }
/** * @expectedException Exception * @expectedExceptionMessage FindMongoCommand error. Bind all required params first. */ public function testFindCommandNotAllParamsBinded() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'bread')); $cmd->execute(); }
public function testInsertCommand() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT, $collection); $cmd ->bindParam('data', array('name' => 'insert')) ->bindParam('safe', true); $this->assertArrayHasKey('n', $cmd->execute());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'insert'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(1, $result->count()); }
/** * @expectedException Exception * @expectedExceptionMessage InsertMongoCommand error. Bind all required params first. */ public function testInsertCommandNotAllParamsBinded() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT, $collection); $cmd->bindParam('data', array('name' => 'bread')); $cmd->execute(); }
public function testUpdateCommand() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT, $collection); $cmd ->bindParam('data', array('name' => 'insert')) ->bindParam('safe', true); $this->assertArrayHasKey('n', $cmd->execute());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::UPDATE, $collection); $cmd ->bindParam('condition', array('name' => 'insert')) ->bindParam('data', array('$set' => array('name' => 'update'))) ->bindParam('upsert', false) ->bindParam('safe', true); $this->assertArrayHasKey('n', $cmd->execute());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'insert'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(0, $result->count()); $cmd->bindParam('condition', array('name' => 'update'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(1, $result->count()); }
/** * @expectedException Exception * @expectedExceptionMessage UpdateMongoCommand error. Bind all required params first. */ public function testUpdateCommandNotAllParamsBinded() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::UPDATE, $collection); $cmd->bindParam('data', array('name' => 'bread')); $cmd->execute(); }
public function testRemoveCommand() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::INSERT, $collection); $cmd ->bindParam('data', array('name' => 'insert')) ->bindParam('safe', true); $this->assertArrayHasKey('n', $cmd->execute());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'insert'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(1, $result->count());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::REMOVE, $collection); $cmd ->bindParam('condition', array('name' => 'insert')) ->bindParam('safe', true); $this->assertArrayHasKey('n', $cmd->execute());
$cmd = MongoCommandBuilder::factory(MongoCommandBuilder::FIND, $collection); $cmd->bindParam('condition', array('name' => 'insert'))->bindParam('fields', array()); $result = $cmd->execute(); $this->assertEquals(0, $result->count()); }
/** * @expectedException Exception * @expectedExceptionMessage RemoveMongoCommand error. Bind all required params first. */ public function testRemoveCommandNotAllParamsBinded() { $collection = $this->driver->getCollection('items'); $cmd = MongoCommandBuilder::factory(MongoCommandBuilder::REMOVE, $collection); $cmd->execute(); }
}
|