/** * @dataProvider driverSet */ public function testMongo(Mongo $mongo) { $collection = 'TestCollection'; $mongo->dropCollection($collection); // Test create collection $mongo->createCollection($collection); $collections = $mongo->listCollections(); /* @var $c CollectionInfo */ $collectionNames = []; foreach ($collections as $c) { $collectionNames[] = $c->getName(); } $this->assertContains('Mongo_' . $collection, $collectionNames); // Test insert data $data = ['name' => 'Webiny']; $result = $mongo->insertOne($collection, $data); $this->assertEquals(1, $result->getInsertedCount()); $this->assertEquals(1, $mongo->count($collection)); // Get new record ID $id = $result->getInsertedId(); // Test update $res = $mongo->update($collection, ['_id' => $id], ['$set' => ['name' => 'Updated Webiny']]); $this->assertEquals(1, $res->getModifiedCount()); // Test findOne $data = $mongo->findOne($collection, ['_id' => $id]); $this->assertEquals('Updated Webiny', $data['name']); // Test find $data = $mongo->find($collection, ['name' => 'Updated Webiny']); $this->assertCount(1, $data); // Test insertMany $mongo->insertMany($collection, [['name' => 'Webiny', 'tag' => 1], ['name' => 'Webiny', 'tag' => 2], ['name' => 'Webiny', 'tag' => 3], ['name' => 'Webiny', 'tag' => 4], ['name' => 'Webiny', 'tag' => 5]]); $this->assertEquals(6, $mongo->count($collection)); // Test find with offset $results = $mongo->find($collection, ['name' => 'Webiny'], [], 1, 2); $this->assertEquals(3, $results[0]['tag']); $results = $mongo->find($collection, ['name' => 'Webiny'], ['tag' => -1], 2, 3); $this->assertCount(2, $results); $this->assertEquals(2, $results[0]['tag']); $this->assertEquals(1, $results[1]['tag']); // Test remove data $mongo->delete($collection, ['_id' => $id]); $this->assertEquals(5, $mongo->count($collection)); // Test drop collection $mongo->dropCollection($collection); $collections = $mongo->listCollections(); /* @var $c CollectionInfo */ $collectionNames = []; foreach ($collections as $c) { $collectionNames[] = $c->getName(); } $this->assertFalse(in_array($collection, $collectionNames)); // Test isId() $id = '12345678absdfgrtuierwe12'; $this->assertFalse($mongo->isId($id)); $id = 'aaaabbbbcccc 11122223333'; $this->assertFalse($mongo->isId($id)); $id = '543c1d846803fa76058b458b'; $this->assertTrue($mongo->isId($id)); }
/** * @dataProvider driverSet */ public function testMongo(Mongo $mongo) { $collection = 'TestCollection'; $mongo->dropCollection($collection); // Test create collection $mongo->createCollection($collection); $collectionNames = $mongo->getCollectionNames(); $this->assertContains($collection, $collectionNames); // Test insert data $data = ['name' => 'Webiny']; $mongo->insert($collection, $data); $this->assertEquals(1, $mongo->count($collection)); $this->assertArrayHasKey('_id', $data); // Get new record ID $id = $data['_id']; // Test update and findOne $mongo->update($collection, ['_id' => $id], ['name' => 'Updated Webiny']); $data = $mongo->findOne($collection, ['_id' => $id]); $this->assertEquals('Updated Webiny', $data['name']); // Test find $data = $mongo->find($collection, ['name' => 'Updated Webiny']); $this->assertCount(1, $data); // Test ensureIndex $res = $mongo->ensureIndex($collection, 'name'); $this->assertEquals(1, $res['ok']); // Test remove data $mongo->remove($collection, ['_id' => $id]); $this->assertEquals(0, $mongo->count($collection)); // Test save $data = ['name' => 'Webiny Save']; $res = $mongo->save($collection, $data); $this->assertEquals(1, $res['ok']); // Test drop collection $mongo->dropCollection($collection); $this->assertFalse(in_array($collection, $mongo->getCollectionNames()->toArray())); // Test isMongoId() $id = '12345678absdfgrtuierwe12'; $this->assertFalse($mongo->isMongoId($id)); $id = 'aaaabbbbcccc 11122223333'; $this->assertFalse($mongo->isMongoId($id)); $id = '543c1d846803fa76058b458b'; $this->assertTrue($mongo->isMongoId($id)); }
/** * @dataProvider driverSet */ public function testSingleIndex(Mongo $mongo) { $collection = 'TestIndexCollection'; $mongo->dropCollection($collection); $index = new SingleIndex('Name', 'name', false, true); $mongo->createIndex($collection, $index); $index = new CompoundIndex('TitleCategory', ['title', 'category']); $mongo->createIndex($collection, $index); $index = new TextIndex('Title', ['title', 'category']); $mongo->createIndex($collection, $index); $indexes = $mongo->getIndexInfo($collection); $this->assertEquals(4, count($indexes)); }
/** * @dataProvider driverSet */ public function testIndexes(Mongo $mongo) { $collection = 'IndexCollection'; $mongo->dropCollection($collection); $index = new SingleIndex('Name', 'name', false, true); $indexName = $mongo->createIndex($collection, $index); $this->assertEquals('Name', $indexName); $index = new CompoundIndex('TitleCategory', ['title', 'category']); $indexName = $mongo->createIndex($collection, $index); $this->assertEquals('TitleCategory', $indexName); $index = new TextIndex('CompoundTextIndex', ['title', 'category']); $indexName = $mongo->createIndex($collection, $index); $this->assertEquals('CompoundTextIndex', $indexName); // Drop index because we can't have 2 text indexes in one collection $mongo->dropIndex($collection, 'CompoundTextIndex'); $index = new TextIndex('SingleTextIndex', 'name'); $indexName = $mongo->createIndex($collection, $index); $this->assertEquals('SingleTextIndex', $indexName); $index = new SphereIndex('Location', 'location'); $indexName = $mongo->createIndex($collection, $index); $this->assertEquals('Location', $indexName); $indexes = $mongo->listIndexes($collection); $this->assertEquals(5, count($indexes)); }