camper/test/media_content.sql

60 lines
1.9 KiB
MySQL
Raw Normal View History

-- 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;