public function testOverrideDefaultDocumentClassByCallable()
{
// define array of collections
$this->database->map(array('collection1' => array('documentClass' => function (array $data) {
return '\\Sokil\\Mongo\\' . $data['documentClassName'];
})));
// define collection
$this->database->map('collection2', array('documentClass' => function (array $data) {
return '\\Sokil\\Mongo\\' . $data['documentClassName'];
}));
// check
$collection1 = $this->database->getCollection('collection1');
$collection1DocumentClassName = $collection1->getDocumentClassName(array('documentClassName' => 'CollectionTestDocumentMock'));
$this->assertEquals('\\Sokil\\Mongo\\CollectionTestDocumentMock', $collection1DocumentClassName);
$collection2 = $this->database->getCollection('collection2');
$collection2DocumentClassName = $collection2->getDocumentClassName(array('documentClassName' => 'CollectionTestDocumentMock'));
$this->assertEquals('\\Sokil\\Mongo\\CollectionTestDocumentMock', $collection2DocumentClassName);
}