/**
  * @dataProvider updateDataProvider
  */
 public function testUpdate($first, $second, $expected)
 {
     $aggregate = new Aggregate();
     $aggregate->update('test', $first);
     $aggregate->update('test', $second);
     $coverage = $aggregate->getCoverage();
     $this->assertTrue(is_array($coverage));
     $this->assertCount(1, $coverage);
     $this->assertEquals($expected, $coverage['test']);
 }
 /**
  * {@inheritdoc}
  */
 public function stop()
 {
     $aggregate = new Aggregate();
     foreach ($this->drivers as $driver) {
         $coverage = $driver->stop();
         if (!$coverage) {
             continue;
         }
         foreach ($coverage as $class => $counts) {
             $aggregate->update($class, $counts);
         }
     }
     return $aggregate->getCoverage();
 }
 /**
  * Get coverage
  *
  * @return array
  */
 public function getCoverage()
 {
     $aggregate = new Aggregate();
     $resultSet = array();
     $sqlite = $this->newSQLiteInstance();
     $result = @$sqlite->query('SELECT class, counts FROM coverage');
     if (!$result) {
         return array();
     }
     while ($res = $result->fetchArray(SQLITE3_ASSOC)) {
         $resultSet[] = $res;
     }
     if ($resultSet !== false) {
         foreach ($resultSet as $result) {
             $counts = json_decode($result['counts'], true);
             $aggregate->update($result['class'], $counts);
         }
     }
     return $aggregate->getCoverage();
 }