Commit fcf22069 authored by Carsten  Rose's avatar Carsten Rose
Browse files

Store.php, AbstractBuildForm.php, QuickFormQuery.php, Save.php: change...

Store.php, AbstractBuildForm.php, QuickFormQuery.php, Save.php: change signature of appendToStore() to be eqal to setStore().
Unittests for appendToStore.php
parent f53407c7
......@@ -565,7 +565,7 @@ abstract class AbstractBuildForm {
if (isset($fe[FE_FILL_STORE_VAR])) {
$fe[FE_FILL_STORE_VAR] = $this->evaluate->parse($fe[FE_FILL_STORE_VAR]);
$this->store->appendToStore(STORE_VAR, $fe[FE_FILL_STORE_VAR]);
$this->store->appendToStore($fe[FE_FILL_STORE_VAR], STORE_VAR);
}
......
......@@ -683,7 +683,7 @@ class QuickFormQuery {
if (!empty($fillStoreVar)) {
$rows = $this->eval->parse($fillStoreVar);
if (is_array($rows)) {
$this->store->appendToStore(STORE_VAR, $rows[0]);
$this->store->appendToStore($rows[0], STORE_VAR);
} else {
if (!empty($rows)) {
throw new UserFormException("Invalid statement for '" . FE_FILL_STORE_VAR . "': " . $formSpec[FE_FILL_STORE_VAR], ERROR_INVALID_OR_MISSING_PARAMETER);
......
......@@ -323,7 +323,7 @@ class Save {
$formElement = HelperFormElement::initUploadFormElement($formElement);
if (isset($formElement[FE_FILL_STORE_VAR])) {
$this->store->appendToStore(STORE_VAR, $formElement[FE_FILL_STORE_VAR]);
$this->store->appendToStore($formElement[FE_FILL_STORE_VAR], STORE_VAR);
}
// Preparation for Log, Debug
......
......@@ -91,7 +91,7 @@ class FormAction {
if (isset($fe[FE_FILL_STORE_VAR])) {
$rows = $this->evaluate->parse($fe[FE_FILL_STORE_VAR]);
if (is_array($rows)) {
$this->store->appendToStore(STORE_VAR, $rows[0]);
$this->store->appendToStore($rows[0], STORE_VAR);
} else {
if (!empty($rows)) {
throw new UserFormException("Invalid statement for 'fillStoreVar': " . $fe[FE_FILL_STORE_VAR], ERROR_INVALID_OR_MISSING_PARAMETER);
......
......@@ -605,7 +605,7 @@ class Report {
}
if ($this->flagFillStoreRecord) {
$this->store->appendToStore(STORE_RECORD, $assoc);
$this->store->appendToStore($assoc, STORE_RECORD);
}
return ($content);
......
......@@ -868,21 +868,21 @@ class Store {
* Append an array (in case of 'array of array': the first row of array) to store $storeName.
* Existing values will be overwritten.
*
* @param array $dataArray - in special cases it might be an empty string -therefore no type definition to 'array'.
* @param $storeName
* @param array $values
* @throws CodeException
* @throws UserFormException
*/
public static function appendToStore($storeName, $values) {
public static function appendToStore($dataArray, $storeName) {
if (empty($values) || !is_array($values)) {
if (empty($dataArray) || !is_array($dataArray)) {
return;
}
if (isset($values[0]) && is_array($values[0])) {
$append = $values[0];
if (isset($dataArray[0]) && is_array($dataArray[0])) {
$append = $dataArray[0];
} else {
$append = $values;
$append = $dataArray;
}
if (empty($append)) {
......
......@@ -212,6 +212,41 @@ class StoreTest extends \PHPUnit_Framework_TestCase {
$this->assertEquals(false, $this->store->getStore(STORE_SYSTEM), "Retrieve system store.");
}
/**
*
*/
public function testAppendToStore() {
$this->store->unsetStore(STORE_RECORD);
$this->store->appendToStore(array(), STORE_RECORD);
$this->assertEquals(array(), $this->store->getStore(STORE_RECORD));
$param = ['a' => 'hello', 'b' => 'world'];
$this->store->appendToStore($param, STORE_RECORD);
$this->assertEquals($param, $this->store->getStore(STORE_RECORD));
$this->store->appendToStore(null, STORE_RECORD);
$this->assertEquals($param, $this->store->getStore(STORE_RECORD));
$this->store->appendToStore('', STORE_RECORD);
$this->assertEquals($param, $this->store->getStore(STORE_RECORD));
$this->store->appendToStore(array(), STORE_RECORD);
$this->assertEquals($param, $this->store->getStore(STORE_RECORD));
$param2 = ['c' => 'nice', 'd' => 'job'];
$this->store->appendToStore($param2, STORE_RECORD);
$this->assertEquals(array_merge($param, $param2), $this->store->getStore(STORE_RECORD));
$param3 = ['a' => 'well', 'b' => 'done'];
$this->store->appendToStore($param3, STORE_RECORD);
$this->assertEquals(array_merge($param3, $param2), $this->store->getStore(STORE_RECORD));
$this->store->setStore($param, STORE_RECORD, true);
$this->store->appendToStore([$param2, $param3, $param3], STORE_RECORD);
$this->assertEquals(array_merge($param, $param2), $this->store->getStore(STORE_RECORD));
}
/**
* @param $body
*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment