-
Notifications
You must be signed in to change notification settings - Fork 0
/
032-ignorfunc.pg
113 lines (92 loc) · 2.55 KB
/
032-ignorfunc.pg
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
SET search_path = public,tap;
BEGIN;
--SELECT plan( 5 );
SELECT * FROM no_plan();
-- Test ins_ignore().
SELECT has_function('ins_ignore');
SELECT has_function('ins_ignore', ARRAY['text', 'text']);
SELECT function_returns('ins_ignore', 'boolean');
SELECT function_lang_is('ins_ignore', 'plpgsql');
SELECT volatility_is('ins_ignore', 'volatile');
SELECT is_definer('ins_ignore');
-- Insert some users.
SELECT ins_user(nick, '*****')
FROM unnest(ARRAY['jrivers', 'drickles', 'mali', 'gmarx']) AS nick;
SELECT is(
COUNT(*)::INT, 0,
'Should start with no ignored'
) FROM ignored;
SELECT ok(
ins_ignore('jrivers', 'drickles'),
'Have Joan ignore Don'
);
SELECT is(
COUNT(*)::INT, 1,
'Should now have 1 ignored'
) FROM ignored;
SELECT is(
ignored.*,
ROW('jrivers', 'drickles')::ignored,
'Should have the proper ignored record'
) FROM ignored WHERE user_nick = 'jrivers';
SELECT ok(
NOT ins_ignore('jrivers', 'drickles'),
'Have Joan ignore Don again'
);
SELECT ok(
ins_ignore('drickles', 'jrivers'),
'Have Don ignore Joan'
);
SELECT is(
COUNT(*)::INT, 2,
'Should now have 2 ignored'
) FROM ignored;
SELECT is(
ignored.*,
ROW('drickles', 'jrivers')::ignored,
'Should have the proper ignored record'
) FROM ignored WHERE user_nick = 'drickles';
SELECT ok(
ins_ignore('jrivers', 'gmarx'),
'Have Joan ignore Groucho'
);
SELECT is(
COUNT(*)::INT, 3,
'Should now have 3 ignored'
) FROM ignored;
-- Test del_ignore().
SELECT has_function('del_ignore');
SELECT has_function('del_ignore', ARRAY['text', 'text']);
SELECT function_returns('del_ignore', 'boolean');
SELECT function_lang_is('del_ignore', 'plpgsql');
SELECT volatility_is('del_ignore', 'volatile');
SELECT is_definer('del_ignore');
SELECT ok(
del_ignore('drickles', 'jrivers'),
'Have Don unignore Joan'
);
SELECT is(
COUNT(*)::INT, 2,
'Should have 2 ignored again'
) FROM ignored;
SELECT ok(
NOT EXISTS(SELECT TRUE FROM ignored WHERE user_nick = 'drickles'),
'Don ignoring Joan record should be gone'
);
-- Test del_ignores().
SELECT has_function('del_ignores');
SELECT has_function('del_ignores', ARRAY['text', 'text[]']);
SELECT function_returns('del_ignores', 'boolean');
SELECT function_lang_is('del_ignores', 'plpgsql');
SELECT volatility_is('del_ignores', 'volatile');
SELECT is_definer('del_ignores');
SELECT ok(
del_ignores('jrivers', 'drickles', 'gmarx'),
'Have Joan unignore Don and Groucho'
);
SELECT is(
COUNT(*)::INT, 0,
'Should onace again have no ignored'
) FROM ignored;
SELECT * FROM finish();
ROLLBACK;