-- Test discount_rate
set client_min_messages to warning;
create extension if not exists pgtap;
reset client_min_messages;

begin;

select plan(7);

set search_path to numerus, public;

select has_domain('discount_rate');
select domain_type_is('discount_rate', 'numeric');

select lives_ok($$ select 1::discount_rate $$, 'Should be able to cast valid 100 % to discount rate');
select lives_ok($$ select 0.21::discount_rate $$, 'Should be able to cast valid positive decimals to discount rate');
select lives_ok($$ select 0::discount_rate $$, 'Should be able to cast valid zero to discount rate');

select throws_ok(
	$$ SELECT (-0.01)::discount_rate $$,
	23514, null,
	'Should reject negative discount rate'
);

select throws_ok(
	$$ SELECT 1.01::discount_rate $$,
	23514, null,
	'Should not allow past the 100 % discount'
);

select *
from finish();

rollback;