60 lines
1.9 KiB
MySQL
60 lines
1.9 KiB
MySQL
|
-- Test media_content
|
||
|
set client_min_messages to warning;
|
||
|
create extension if not exists pgtap;
|
||
|
reset client_min_messages;
|
||
|
|
||
|
begin;
|
||
|
|
||
|
select plan(21);
|
||
|
|
||
|
set search_path to camper, public;
|
||
|
|
||
|
select has_table('media_content');
|
||
|
select has_pk('media_content');
|
||
|
select table_privs_are('media_content', 'guest', array['SELECT']);
|
||
|
select table_privs_are('media_content', 'employee', array['SELECT']);
|
||
|
select table_privs_are('media_content', 'admin', array['SELECT', 'INSERT', 'UPDATE', 'DELETE']);
|
||
|
select table_privs_are('media_content', 'authenticator', array[]::text[]);
|
||
|
|
||
|
select has_column('media_content', 'content_hash');
|
||
|
select col_is_pk('media_content', 'content_hash');
|
||
|
select col_type_is('media_content', 'content_hash', 'bytea');
|
||
|
select col_not_null('media_content', 'content_hash');
|
||
|
select col_has_default('media_content', 'content_hash');
|
||
|
select col_default_is('media_content', 'content_hash', 'sha256(bytes)');
|
||
|
|
||
|
select has_column('media_content', 'media_type');
|
||
|
select col_type_is('media_content', 'media_type', 'media_type');
|
||
|
select col_not_null('media_content', 'media_type');
|
||
|
select col_hasnt_default('media_content', 'media_type');
|
||
|
|
||
|
select has_column('media_content', 'bytes');
|
||
|
select col_type_is('media_content', 'bytes', 'bytea');
|
||
|
select col_not_null('media_content', 'bytes');
|
||
|
select col_hasnt_default('media_content', 'bytes');
|
||
|
|
||
|
|
||
|
set client_min_messages to warning;
|
||
|
truncate media_content cascade;
|
||
|
reset client_min_messages;
|
||
|
|
||
|
insert into media_content (media_type, bytes)
|
||
|
values ('text/plain', 'content2')
|
||
|
, ('text/plain', 'content4')
|
||
|
;
|
||
|
|
||
|
select bag_eq(
|
||
|
$$ select encode(content_hash, 'hex'), convert_from(bytes, 'utf-8') from media_content $$,
|
||
|
$$ values ('dab741b6289e7dccc1ed42330cae1accc2b755ce8079c2cd5d4b5366c9f769a6', 'content2')
|
||
|
, ('b04813d4f04a27cbd8a5d7828344a0c7d206a486343f503cb7e3d53e1d8e95a0', 'content4')
|
||
|
$$,
|
||
|
'Should automatically compute the content_hash'
|
||
|
);
|
||
|
|
||
|
|
||
|
select *
|
||
|
from finish();
|
||
|
|
||
|
rollback;
|
||
|
|