LP#1570909 User activity purge pgtap test
authorBill Erickson <berickxx@gmail.com>
Fri, 15 Apr 2016 20:54:48 +0000 (16:54 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 24 Aug 2016 16:37:03 +0000 (12:37 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/live_t/purge-user-activity.pg [new file with mode: 0644]

diff --git a/Open-ILS/src/sql/Pg/live_t/purge-user-activity.pg b/Open-ILS/src/sql/Pg/live_t/purge-user-activity.pg
new file mode 100644 (file)
index 0000000..bf38146
--- /dev/null
@@ -0,0 +1,68 @@
+BEGIN;
+
+SELECT plan(6);
+
+\set usr_one 1
+\set usr_two 2
+
+-- shuffle event_times for randomness.
+INSERT INTO actor.usr_activity (usr, etype, event_time) VALUES
+    (:usr_one, 1, NOW() - '2 days'::INTERVAL),
+    (:usr_one, 1, NOW()),
+    (:usr_one, 1, NOW() - '1 days'::INTERVAL),
+    (:usr_one, 2, NOW() - '1 days'::INTERVAL),
+    (:usr_one, 2, NOW()),
+    (:usr_one, 2, NOW() - '2 days'::INTERVAL),
+    (:usr_two, 1, NOW() - '1 days'::INTERVAL),
+    (:usr_two, 1, NOW()),
+    (:usr_two, 1, NOW() - '2 days'::INTERVAL);
+
+
+SELECT actor.purge_usr_activity_by_type(1);
+SELECT actor.purge_usr_activity_by_type(2);
+
+SELECT is(
+    (SELECT COUNT(*) FROM actor.usr_activity 
+        WHERE usr = :usr_one AND etype = 1),
+    1::BIGINT, 
+    'Confirm only one event row exists'
+);
+
+SELECT is(
+    (SELECT DATE(event_time) FROM actor.usr_activity 
+        WHERE usr = :usr_one AND etype = 1),
+    DATE(NOW()), 
+    'Confirm most recent event is retained'
+);
+
+SELECT is(
+    (SELECT COUNT(*) FROM actor.usr_activity 
+        WHERE usr = :usr_one AND etype = 2),
+    1::BIGINT, 
+    'Confirm only one event row exists'
+);
+
+SELECT is(
+    (SELECT DATE(event_time) FROM actor.usr_activity 
+        WHERE usr = :usr_one AND etype = 2),
+    DATE(NOW()), 
+    'Confirm most recent event is retained'
+);
+
+SELECT is(
+    (SELECT COUNT(*) FROM actor.usr_activity 
+        WHERE usr = :usr_two AND etype = 1),
+    1::BIGINT, 
+    'Confirm only one event row exists'
+);
+
+SELECT is(
+    (SELECT DATE(event_time) FROM actor.usr_activity 
+        WHERE usr = :usr_two AND etype = 1),
+    DATE(NOW()), 
+    'Confirm most recent event is retained'
+);
+
+SELECT * FROM finish();
+ROLLBACK;
+