public function testPerformanceMetrics() { $dal = new DalResolver(); $this->assertFalse($dal->isCollectingPerformanceMetrics()); $dal->enablePerformanceMetrics(); $this->assertTrue($dal->isCollectingPerformanceMetrics()); $dal->disablePerformanceMetrics(); $this->assertFalse($dal->isCollectingPerformanceMetrics()); $dal->enablePerformanceMetrics(); $id = $dal->startPerformanceMetric('test', DalResolver::MODE_READ, 'SLEEP'); sleep(1); $dal->closePerformanceMetric($id); $perfData = $dal->getPerformanceMetrics(); $this->assertCount(1, $perfData); $perfData = reset($perfData); $this->assertEquals('test', $perfData['c']); $this->assertEquals('SLEEP', $perfData['q']); $this->assertEquals(DalResolver::MODE_READ, $perfData['m']); $this->assertGreaterThan(1000, $perfData['t']); $this->setExpectedException(DalException::class, "You cannot close performance metrics that are not open"); $dal->closePerformanceMetric($id); }