This is more or less the same as the campsites, as public information goes, but for buildings and other amenities that the camping provides that are not campsites.
68 lines
2.2 KiB
PL/PgSQL
68 lines
2.2 KiB
PL/PgSQL
-- Test order_amenity_features
|
|
set client_min_messages to warning;
|
|
create extension if not exists pgtap;
|
|
reset client_min_messages;
|
|
|
|
begin;
|
|
|
|
select plan(11);
|
|
|
|
set search_path to camper, public;
|
|
|
|
select has_function('camper', 'order_amenity_features', array['integer[]']);
|
|
select function_lang_is('camper', 'order_amenity_features', array['integer[]'], 'sql');
|
|
select function_returns('camper', 'order_amenity_features', array['integer[]'], 'void');
|
|
select isnt_definer('camper', 'order_amenity_features', array['integer[]']);
|
|
select volatility_is('camper', 'order_amenity_features', array['integer[]'], 'volatile');
|
|
select function_privs_are('camper', 'order_amenity_features', array ['integer[]'], 'guest', array[]::text[]);
|
|
select function_privs_are('camper', 'order_amenity_features', array ['integer[]'], 'employee', array[]::text[]);
|
|
select function_privs_are('camper', 'order_amenity_features', array ['integer[]'], 'admin', array['EXECUTE']);
|
|
select function_privs_are('camper', 'order_amenity_features', array ['integer[]'], 'authenticator', array[]::text[]);
|
|
|
|
|
|
set client_min_messages to warning;
|
|
truncate amenity_feature cascade;
|
|
truncate amenity cascade;
|
|
truncate company cascade;
|
|
reset client_min_messages;
|
|
|
|
|
|
insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, rtc_number, tourist_tax, country_code, currency_code, default_lang_tag)
|
|
values (2, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', '', 60, 'ES', 'EUR', 'ca')
|
|
;
|
|
|
|
insert into amenity (amenity_id, company_id, label, name)
|
|
values (17, 2, 'A1', 'Amenity A1')
|
|
;
|
|
|
|
insert into amenity_feature (amenity_feature_id, amenity_id, icon_name, name)
|
|
values (21, 17, 'information', '1')
|
|
, (22, 17, 'ball', '2')
|
|
, (23, 17, 'bicycle', '3')
|
|
, (24, 17, 'campfire', '4')
|
|
, (25, 17, 'castle', '5')
|
|
;
|
|
|
|
|
|
select lives_ok(
|
|
$$ select order_amenity_features('{23,25,24,21,22}') $$,
|
|
'Should be able to sort amenity type features using their ID'
|
|
);
|
|
|
|
select bag_eq(
|
|
$$ select amenity_feature_id, position from amenity_feature $$,
|
|
$$ values (23, 1)
|
|
, (25, 2)
|
|
, (24, 3)
|
|
, (21, 4)
|
|
, (22, 5)
|
|
$$,
|
|
'Should have sorted all amenity type features.'
|
|
);
|
|
|
|
|
|
select *
|
|
from finish();
|
|
|
|
rollback;
|