diff --git a/src/Record/Record.php b/src/Record/Record.php new file mode 100644 index 0000000..0dd58cb --- /dev/null +++ b/src/Record/Record.php @@ -0,0 +1,81 @@ +name = $name; + $this->origin = $origin; + $this->duration = $duration; + $this->description = $description; + $this->category = $category; + } + + /** + * @return string + */ + public function get_name() { + return $this->name; + } + + /** + * @return string + */ + public function get_description() { + + if ( empty( $this->description ) ) { + $duration = round( $this->get_duration() * 1000 ); + + return "{$this->name} – {$duration} ms"; + } + + return $this->description; + } + + /** + * @return float + */ + public function get_origin() { + return $this->origin; + } + + /** + * @return float + */ + public function get_duration() { + return $this->duration; + } + + /** + * @return string + */ + public function get_category() { + return $this->category; + } +} diff --git a/src/Record/Sql_Record.php b/src/Record/Sql_Record.php deleted file mode 100644 index 09ab78e..0000000 --- a/src/Record/Sql_Record.php +++ /dev/null @@ -1,72 +0,0 @@ -sql = $sql; - $this->origin = $origin; - $this->duration = $duration; - $this->category = $category; - } - - /** - * @return string - */ - public function get_name() { - return $this->sql; - } - - /** - * @return string - */ - public function get_description() { - - $duration = round( $this->duration * 1000 ); // s to ms. - - return "{$this->sql} – {$duration} ms"; - } - - /** - * @return float Timestamp of record start. - */ - public function get_origin() { - return $this->origin; - } - - /** - * @return float Record duration in seconds. - */ - public function get_duration() { - return $this->duration; - } - - /** - * @return string - */ - public function get_category() { - return $this->category; - } -} diff --git a/src/Record/Sql_Record_Collector.php b/src/Record/Sql_Record_Collector.php index 9597bf7..560aa88 100644 --- a/src/Record/Sql_Record_Collector.php +++ b/src/Record/Sql_Record_Collector.php @@ -41,7 +41,7 @@ class Sql_Record_Collector implements Record_Collector_Interface { } /** - * @return Sql_Record[] + * @return Record[] */ public function get_records() { @@ -54,6 +54,7 @@ class Sql_Record_Collector implements Record_Collector_Interface { $query_data = []; $last_query_end = 0; + // TODO process call trace from the data. foreach ( $wpdb->queries as $key => list( $sql, $duration ) ) { $query_start = isset( $this->query_starts[ $key ] ) ? $this->query_starts[ $key ] : $last_query_end; $sql = trim( $sql ); @@ -65,7 +66,7 @@ class Sql_Record_Collector implements Record_Collector_Interface { $last_query_end = $query_start + $duration; - $query_data[] = new Sql_Record( $sql, $query_start, $duration, $category ); + $query_data[] = new Record( $sql, $query_start, $duration, '', $category ); } return $query_data; diff --git a/tests/Record/IteratorTest.php b/tests/Record/IteratorTest.php index ef9c2cd..2b98eae 100644 --- a/tests/Record/IteratorTest.php +++ b/tests/Record/IteratorTest.php @@ -3,15 +3,21 @@ namespace Rarst\Laps\Tests\Record; use Rarst\Laps\Record\Recursive_Record_Iterator; +use Rarst\Laps\Record\Record; use Rarst\Laps\Record\Timeline_Iterator; use Rarst\Laps\Tests\LapsTestCase; class IteratorTest extends LapsTestCase { + /** + * @covers \Rarst\Laps\Record\Recursive_Record_Iterator + * + * @return Recursive_Record_Iterator + */ public function testRecord() { - $record_a = new StubRecord( 'Parent', 0, 100 ); - $record_b = new StubRecord( 'Child', 50, 100 ); + $record_a = new Record( 'Parent', 0, 100 ); + $record_b = new Record( 'Child', 50, 100 ); $records = [ $record_b, $record_a ]; @@ -35,6 +41,8 @@ class IteratorTest extends LapsTestCase { } /** + * @covers \Rarst\Laps\Record\Timeline_Iterator + * * @depends testRecord */ public function testTimeline( Recursive_Record_Iterator $iterator ) { diff --git a/tests/Record/RecordTest.php b/tests/Record/RecordTest.php new file mode 100644 index 0000000..297c812 --- /dev/null +++ b/tests/Record/RecordTest.php @@ -0,0 +1,36 @@ +assertEquals( $name, $record->get_name() ); + $this->assertEquals( $origin, $record->get_origin() ); + $this->assertEquals( $duration, $record->get_duration() ); + $this->assertContains( $name, $record->get_description() ); + $this->assertContains( (string) ( $duration * 1000 ), $record->get_description() ); + $this->assertEmpty( $record->get_category() ); + + $record = new Record( $name, $origin, $duration, $description, $category ); + + $this->assertEquals( $description, $record->get_description() ); + $this->assertEquals( $category, $record->get_category() ); + } +} diff --git a/tests/Record/SqlTest.php b/tests/Record/SqlTest.php index f907239..243c3f6 100644 --- a/tests/Record/SqlTest.php +++ b/tests/Record/SqlTest.php @@ -2,12 +2,15 @@ namespace Rarst\Laps\Tests\Record; -use Rarst\Laps\Record\Sql_Record; +use Rarst\Laps\Record\Record; use Rarst\Laps\Record\Sql_Record_Collector; use Rarst\Laps\Tests\LapsTestCase; class SqlTest extends LapsTestCase { + /** + * @covers \Rarst\Laps\Record\Sql_Record_Collector + */ public function testCollector() { define( 'SAVEQUERIES', true ); @@ -33,7 +36,7 @@ class SqlTest extends LapsTestCase { $record = $records[0]; - $this->assertInstanceOf( Sql_Record::class, $record ); + $this->assertInstanceOf( Record::class, $record ); $this->assertEquals( $query, $record->get_name() ); $this->assertContains( $query, $record->get_description() ); $this->assertInternalType( 'float', $record->get_origin() ); diff --git a/tests/Record/StubRecord.php b/tests/Record/StubRecord.php deleted file mode 100644 index 1831c0d..0000000 --- a/tests/Record/StubRecord.php +++ /dev/null @@ -1,38 +0,0 @@ -name = $name; - $this->origin = $origin; - $this->duration = $duration; - } - - public function get_name() { - return $this->name; - } - - public function get_description() { - - } - - public function get_origin() { - return $this->origin; - } - - public function get_duration() { - return $this->duration; - } - - public function get_category() { - - } -}