summaryrefslogtreecommitdiff
path: root/test/it_dbi.t
diff options
context:
space:
mode:
Diffstat (limited to 'test/it_dbi.t')
-rwxr-xr-xtest/it_dbi.t32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/it_dbi.t b/test/it_dbi.t
index 750841a..b09cdbb 100755
--- a/test/it_dbi.t
+++ b/test/it_dbi.t
@@ -422,3 +422,35 @@ is(allrecs(), '[{"ID":4,"foo":"C"}]', 'data after delete_untouched after replace
$record->upsert(['ID' => 4, 'foo' => "C"]);
is($record->delete_untouched(), [], 'delete_untouched after upsert without changes');
is(allrecs(), '[{"ID":4,"foo":"C"}]', 'data after delete_untouched after upsert without changes');
+
+#
+# Test _read_postprocess and _write_preprocess
+#
+class my_dbi_test extends it_dbi_test
+{
+
+static function _read_postprocess($data)
+{
+ $data['x']--;
+ return $data;
+}
+
+static function _write_preprocess($data)
+{
+ $data['x']++;
+ return $data;
+}
+
+}
+
+$record = new my_dbi_test;
+$record->delete(['WHERE 1' ]);
+$record->upsert(['ID' => 1, 'x' => 42, 'foo' => "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');
+
+$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');