LP#838525 DoB as date PGTAP test
authorBill Erickson <berickxx@gmail.com>
Wed, 30 Sep 2015 16:13:21 +0000 (12:13 -0400)
committerMike Rylander <mrylander@gmail.com>
Thu, 1 Oct 2015 18:47:15 +0000 (14:47 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/t/dob-as-date.pg [new file with mode: 0644]

diff --git a/Open-ILS/src/sql/Pg/t/dob-as-date.pg b/Open-ILS/src/sql/Pg/t/dob-as-date.pg
new file mode 100644 (file)
index 0000000..a1f726f
--- /dev/null
@@ -0,0 +1,38 @@
+BEGIN;
+
+SELECT plan(5);
+
+SELECT col_type_is('actor', 'usr', 'dob', 'date', 'Check dob column type');
+
+SELECT is(
+    (SELECT (
+        '2011-02-28 23:00:00-05'::timestamptz + '3 hours'::interval)::date),
+    '2011-03-01',
+    'Confirming date translation on hour-23 dates'
+);
+
+SELECT is(
+    (SELECT dob FROM actor.usr WHERE id = 1),
+    '1979-01-22', -- DoB of admin user
+    'Checking admin default dob'
+);
+
+UPDATE actor.usr SET dob = '2011-03-01 00:00:00-10' WHERE id = 1;
+
+SELECT is(
+    (SELECT dob FROM actor.usr WHERE id = 1),
+    '2011-03-01',
+    'Date truncation with timezone v1'
+);
+
+UPDATE actor.usr SET dob = '2011-06-01 00:00:00+10' WHERE id = 1;
+
+SELECT is(
+    (SELECT dob FROM actor.usr WHERE id = 1),
+    '2011-06-01', 
+    'Date truncation with timezone v2'
+);
+
+-- Finish the tests and clean up.
+SELECT * FROM finish();
+ROLLBACK;