57c5085cefce24a33673ae391d0994889be27581
[working/Evergreen.git] / Open-ILS / src / sql / Pg / t / db_patch_dep_checks.pg
1 BEGIN;
2
3 SELECT plan(5);
4
5 INSERT INTO config.db_patch_dependencies (db_patch, supersedes, deprecates)
6     VALUES
7         ('AAAE', '{AAAD}', '{}'),
8         ('AAAF', '{}', '{AAAC,AAAB}');
9
10 -- AAAB is deprecated by AAAF
11 SELECT is(evergreen.upgrade_list_applied_deprecated('AAAB'), 'AAAF', 'deprecated');
12
13 -- AAAC is deprecated by AAAF
14 SELECT is(evergreen.upgrade_list_applied_deprecated('AAAC'), 'AAAF', 'deprecated');
15
16 -- AAAD is superseded by AAAE
17 SELECT is(evergreen.upgrade_list_applied_superseded('AAAD'), 'AAAE', 'superseded');
18
19 -- add some applied versions
20 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('AAAB', 'AAAA');
21 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('AAAC', 'AAAB');
22 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('AAAD', 'AAAC');
23
24 -- AAAE supersedes AAAD
25 SELECT is(
26     (SELECT ARRAY_AGG(patch) FROM evergreen.upgrade_list_applied_supersedes('AAAE')),
27     '{AAAD}'
28 );
29
30 -- AAAF deprecates AAAB, AAAC
31 SELECT is(
32     (SELECT ARRAY_AGG(patch) FROM evergreen.upgrade_list_applied_deprecates('AAAF')),
33     '{AAAB,AAAC}'
34 );
35
36 ROLLBACK;