/**
  * @dataProvider getQueries
  */
 public function testCollect($query, $formatted)
 {
     $collector = new PrettyDataCollector();
     $collector->logQuery($query);
     $collector->collect(new Request(), new Response());
     $this->assertEquals(1, $collector->getQueryCount());
     $this->assertEquals($formatted, $collector->getQueries());
 }
 public function testCollectLimit()
 {
     $queries = array(array('find' => true, 'query' => array('path' => '/'), 'fields' => array(), 'db' => 'foo', 'collection' => 'Route'), array('find' => true, 'query' => array('_id' => 'foo'), 'fields' => array(), 'db' => 'foo', 'collection' => 'User'), array('limit' => true, 'limitNum' => 1, 'query' => array('_id' => 'foo'), 'fields' => array()), array('limit' => true, 'limitNum' => NULL, 'query' => array('_id' => 'foo'), 'fields' => array()), array('find' => true, 'query' => array('_id' => '5506fa1580c7e1ee3c8b4c60'), 'fields' => array(), 'db' => 'foo', 'collection' => 'Group'), array('limit' => true, 'limitNum' => 1, 'query' => array('_id' => '5506fa1580c7e1ee3c8b4c60'), 'fields' => array()), array('limit' => true, 'limitNum' => NULL, 'query' => array('_id' => '5506fa1580c7e1ee3c8b4c60'), 'fields' => array()));
     $formatted = array('use foo;', 'db.Route.find({ "path": "/" });', 'db.User.find({ "_id": "foo" }).limit(1);', 'db.Group.find({ "_id": "5506fa1580c7e1ee3c8b4c60" }).limit(1);');
     $collector = new PrettyDataCollector();
     foreach ($queries as $query) {
         $collector->logQuery($query);
     }
     $collector->collect(new Request(), new Response());
     $this->assertEquals(3, $collector->getQueryCount());
     $this->assertEquals($formatted, $collector->getQueries());
 }
 public function testCollectSort()
 {
     $queries = [['find' => true, 'query' => ['_id' => 'foo'], 'fields' => [], 'db' => 'foo', 'collection' => 'User'], ['sort' => true, 'sortFields' => ['name' => 1, 'city' => -1], 'query' => ['_id' => 'foo'], 'fields' => []], ['find' => true, 'query' => ['_id' => '5506fa1580c7e1ee3c8b4c60'], 'fields' => [], 'db' => 'foo', 'collection' => 'Group'], ['sort' => true, 'sortFields' => [], 'query' => ['_id' => '5506fa1580c7e1ee3c8b4c60'], 'fields' => []]];
     $formatted = ['use foo;', 'db.User.find({ "_id": "foo" }).sort({ "name": 1, "city": -1 });', 'db.Group.find({ "_id": "5506fa1580c7e1ee3c8b4c60" }).sort({ });'];
     $collector = new PrettyDataCollector();
     foreach ($queries as $query) {
         $collector->logQuery($query);
     }
     $collector->collect(new Request(), new Response());
     $this->assertEquals(2, $collector->getQueryCount());
     $this->assertEquals($formatted, $collector->getQueries());
 }