diff options
author | diosmosis <diosmosis@users.noreply.github.com> | 2019-07-29 23:08:46 +0300 |
---|---|---|
committer | Thomas Steur <tsteur@users.noreply.github.com> | 2019-07-29 23:08:46 +0300 |
commit | 77e879bc4d86f9e8584415f575040a89f872edd6 (patch) | |
tree | bb26eac87188ef70f7c543e52287ab97495ff3df /tests | |
parent | 868bb88a7abf961f6f723c1a053a670f1b04913e (diff) |
Save DataTable metadata in records if added during archiving. (#14671)3.12.0-b1
* Save DataTable metadata in records if added during archiving.
* Use descriptive and rare string row label.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Unit/DataTableTest.php | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/PHPUnit/Unit/DataTableTest.php b/tests/PHPUnit/Unit/DataTableTest.php index 424fce0186..fbc1f5adee 100644 --- a/tests/PHPUnit/Unit/DataTableTest.php +++ b/tests/PHPUnit/Unit/DataTableTest.php @@ -12,6 +12,7 @@ use Piwik\Common; use Piwik\DataTable\Manager; use Piwik\DataTable\Row; use Piwik\DataTable; +use Piwik\Date; use Piwik\Timer; use Symfony\Component\VarDumper\Cloner\Data; @@ -672,7 +673,9 @@ class DataTableTest extends \PHPUnit_Framework_TestCase $subtableId = $row[Row::DATATABLE_ASSOCIATED]; - if ($row[Row::COLUMNS]['label'] === DataTable::LABEL_SUMMARY_ROW) { + if ($row[Row::COLUMNS]['label'] === DataTable::LABEL_SUMMARY_ROW + || $row[Row::COLUMNS]['label'] === DataTable::LABEL_ARCHIVED_METADATA_ROW + ) { $this->assertNull($subtableId); } else { @@ -713,6 +716,38 @@ class DataTableTest extends \PHPUnit_Framework_TestCase ), $tables); } + public function test_serializationOfDataTableMetadata() + { + $table = new DataTable(); + $table->addRow(new Row([ + Row::COLUMNS => ['label' => 'abc', 'nb_visits' => 5], + ])); + $table->setAllTableMetadata([ + 'str' => 'str value', + 'int' => 5, + 'float' => 3.65, + 'bool' => true, + 'object' => Date::today(), + ]); + + $serialized = $table->getSerialized(); + + $newTable = DataTable::fromSerializedArray(reset($serialized)); + + $this->assertEquals([ + new Row([ + Row::COLUMNS => ['label' => 'abc', 'nb_visits' => 5], + ]), + ], $newTable->getRows()); + + $this->assertEquals([ + 'str' => 'str value', + 'int' => 5, + 'float' => 3.65, + 'bool' => true, + ], $newTable->getAllTableMetadata()); + } + private function addManyRows(DataTable $table, $numRows) { for ($i = 0; $i < $numRows; $i++) { |