-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_cases.sql
More file actions
45 lines (35 loc) · 1.69 KB
/
test_cases.sql
File metadata and controls
45 lines (35 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- Run these one by one
TRUNCATE customers;
-- The customers' table should be empty
SELECT * FROM customers;
-- VALID: new customer age 26 downloading 'Domainer'
INSERT INTO customers(customerid, age, downloadsid) VALUES (1, 26, 1);
SELECT * FROM customers;
-- INVALID: new customer aged 20 downloading 'Domainer'
INSERT INTO customers(customerid, age, downloadsid) VALUES (2, 20, 1);
SELECT * FROM customers;
-- VALID: new customer aged 20 downloading 'Terminator'
INSERT INTO customers(customerid, age, downloadsid) VALUES (2, 20, 2);
SELECT * FROM customers;
-- INVALID: renaming 'Terminator' to 'Domainer' where a customer under age 21 has downloaded
UPDATE downloads SET name = 'Domainer' WHERE downloadsid = 2;
SELECT * FROM downloads;
-- VALID: set customer that downloaded 'Domainer' before age to 36
UPDATE customers SET age = 36 WHERE customerid = 1;
SELECT * FROM customers;
-- INVALID: set customer that downloaded 'Domainer' before age to 20
UPDATE customers SET age = 20 WHERE customerid = 1;
SELECT * FROM customers;
-- INVALID: update underage customer to download 'Domainer'
UPDATE customers SET downloadsid = 1 WHERE customerid = 2; -- invalid
SELECT * FROM customers;
-- VALID: set underage customer to 30 and download 'Domainer'
-- The next 2 query has to execute together
UPDATE customers SET age = 30 WHERE customerid = 2; -- valid
UPDATE customers SET downloadsid = 1 WHERE customerid = 2; -- valid
SELECT * FROM customers;
-- VALID: drop the trigger and attempt to insert the underage customer to download 'Domainer'
DELETE FROM customers WHERE customerid = 2;
DROP FUNCTION IF EXISTS t_r21() CASCADE;
INSERT INTO customers(customerid, age, downloadsid) VALUES (2, 20, 1);
SELECT * FROM customers;