summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChristian Schneider2020-06-26 07:55:33 +0200
committerChristian Schneider2020-06-26 07:55:33 +0200
commitcd76f06c9d8240cec15c51f33a2b8b09946c3e53 (patch)
treed5f63fd51d1e6cc0a7885afd790a4d52e8dfe1f2 /test
parent5555b40c2a126cecc1d85d992c6862e53fee1c60 (diff)
downloaditools-cd76f06c9d8240cec15c51f33a2b8b09946c3e53.tar.gz
itools-cd76f06c9d8240cec15c51f33a2b8b09946c3e53.tar.bz2
itools-cd76f06c9d8240cec15c51f33a2b8b09946c3e53.zip
Leave _data unchanged by __read_postprocess as update() needs that and add test for it
Diffstat (limited to 'test')
-rwxr-xr-xtest/it_dbi.t17
1 files changed, 13 insertions, 4 deletions
diff --git a/test/it_dbi.t b/test/it_dbi.t
index b09cdbb..45f70d4 100755
--- a/test/it_dbi.t
+++ b/test/it_dbi.t
@@ -432,12 +432,16 @@ class my_dbi_test extends it_dbi_test
static function _read_postprocess($data)
{
$data['x']--;
+ $data['foo'] = json_decode($data['foo'], true);
return $data;
}
static function _write_preprocess($data)
{
- $data['x']++;
+ if (isset($data['x']))
+ $data['x']++;
+ if (isset($data['foo']))
+ $data['foo'] = json_encode($data['foo']);
return $data;
}
@@ -445,12 +449,17 @@ static function _write_preprocess($data)
$record = new my_dbi_test;
$record->delete(['WHERE 1' ]);
-$record->upsert(['ID' => 1, 'x' => 42, 'foo' => "a"]);
+$record->upsert(['ID' => 1, 'x' => 42, 'foo' => ['value' => "a"]]);
$record->read(1);
is($record->x, 42, 'value of x after reading with _read_postprocess');
-is($record->_data, ["ID" => 1, "x" => 42, 'foo' => "a"], 'data after reading with _read_postprocess');
+is($record->_data, ["ID" => 1, "x" => 42, 'foo' => '{"value":"a"}'], 'data after reading with _read_postprocess');
+is($record->foo, ['value' => "a"], 'field after reading with _read_postprocess');
$record2 = new it_dbi_test;
$record2->read(1);
is($record2->x, 43, 'raw value of x after writing with _write_preprocess');
-is($record2->_data, ["ID" => 1, "x" => 43, 'foo' => "a"], 'raw data after writing with _write_preprocess');
+is($record2->_data, ["ID" => 1, "x" => 43, 'foo' => '{"value":"a"}'], 'raw data after writing with _write_preprocess');
+
+$record->update(['foo' => ['value' => "b"]]);
+is($record->_data, ["ID" => 1, "x" => 42, 'foo' => '{"value":"b"}'], 'raw data after updating with _write_preprocess');
+is($record->foo, ['value' => "b"], 'field data after updating with _write_preprocess');