diff options
author | diosmosis <diosmosis@users.noreply.github.com> | 2018-09-07 02:44:23 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-07 02:44:23 +0300 |
commit | f74db0ecaffbb67e41ff38a79a1a0813873933d7 (patch) | |
tree | b9c50600dc74116e4e2bd17cc16d4233a708daed /tests | |
parent | c9d4cfcb7b7fb7735058a8b265801e16406c4f69 (diff) |
Make sure simple datatable metadata is serialized + some test case changes (#13296)
* Make DataTable metadata protected so it will be serialized in derived classes.
* Allow SystemTestCase::runAnyApiTest to test any format and use a testSuffix.
* Add test for metadata serialization & note about it in field docs.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Framework/TestCase/SystemTestCase.php | 10 | ||||
-rw-r--r-- | tests/PHPUnit/Unit/DataTable/SimpleTest.php | 52 |
2 files changed, 60 insertions, 2 deletions
diff --git a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php index af729554f2..be50d0ba07 100644 --- a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php +++ b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php @@ -297,12 +297,18 @@ abstract class SystemTestCase extends PHPUnit_Framework_TestCase protected function runAnyApiTest($apiMethod, $apiId, $requestParams, $options = array()) { $requestParams['module'] = 'API'; - $requestParams['format'] = 'XML'; + if (empty($requestParams['format'])) { + $requestParams['format'] = 'XML'; + } $requestParams['method'] = $apiMethod; - $apiId = $apiMethod . '_' . $apiId . '.xml'; + $apiId = $apiMethod . '_' . $apiId . '.' . strtolower($requestParams['format']); $testName = 'test_' . static::getOutputPrefix(); + if (!empty($options['testSuffix'])) { + $testName .= '_' . $options['testSuffix']; + } + list($processedFilePath, $expectedFilePath) = $this->getProcessedAndExpectedPaths($testName, $apiId, $format = null, $compareAgainst = false); diff --git a/tests/PHPUnit/Unit/DataTable/SimpleTest.php b/tests/PHPUnit/Unit/DataTable/SimpleTest.php new file mode 100644 index 0000000000..16a8f49a84 --- /dev/null +++ b/tests/PHPUnit/Unit/DataTable/SimpleTest.php @@ -0,0 +1,52 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Unit\DataTable; + + +use Piwik\DataTable; +use Piwik\DataTable\Row; +use Piwik\DataTable\Simple; + +class SimpleTest extends \PHPUnit_Framework_TestCase +{ + public function test_serialize_includesAllRequiredData() + { + $dataTable = new Simple(); + $dataTable->addRowFromSimpleArray([ + 'column1' => 'value1', + 'column2' => 'value2', + ]); + $dataTable->addSummaryRow(new Row([ + Row::COLUMNS => ['column1' => 'total1', 'column2' => 'total2'] + ])); + $dataTable->setAllTableMetadata([ + 'metadataKey1' => 10, + 'metadataKey2' => ['a', 'b', 'c'], + ]); + + $serialized = serialize($dataTable); + + /** @var Simple $unserialized */ + $unserialized = unserialize($serialized); + + $this->assertEquals(1, $unserialized->getRowsCountWithoutSummaryRow()); + $this->assertEquals([ + 'column1' => 'value1', + 'column2' => 'value2', + ], $unserialized->getRows()[0]->getColumns()); + + $this->assertEquals(2, $unserialized->getRowsCount()); + $this->assertEquals(['column1' => 'total1', 'column2' => 'total2'], $unserialized->getRows()[DataTable::ID_SUMMARY_ROW]->getColumns()); + + $this->assertEquals([ + 'metadataKey1' => 10, + 'metadataKey2' => ['a', 'b', 'c'], + ], $unserialized->getAllTableMetadata()); + } +}
\ No newline at end of file |