Emmanuel BENOîT
e50775ec76
* The main loader script has been updated to generate the list of files it needs to load automatically. As a consequence, files that contained manually-maintained lists of scripts have been removed, and definition directories have been renamed accordingly. * PostgreSQL extension loading and configuration has been moved to a separate script to be loaded automatically in the main transaction. * Data and function definition scripts that had the -data or -functions suffix have been renamed (the suffix is unnecessary). * Unit tests have been reorganised to follow the definition's structure. * Documentation has been improved
62 lines
No EOL
2.7 KiB
PL/PgSQL
62 lines
No EOL
2.7 KiB
PL/PgSQL
/*
|
|
* Test the verse.create_resource_provider( ) function
|
|
*/
|
|
BEGIN;
|
|
|
|
/* Before any actual testing, we need to drop FK constraints on the RP
|
|
* table and create a table which will contain the results of the
|
|
* function.
|
|
*/
|
|
|
|
ALTER TABLE verse.resource_providers
|
|
DROP CONSTRAINT fk_resprov_planet ,
|
|
DROP CONSTRAINT fk_resprov_resource;
|
|
|
|
CREATE TEMPORARY TABLE test_result(
|
|
_providers_left INT ,
|
|
_tot_quantity DOUBLE PRECISION ,
|
|
_tot_difficulty DOUBLE PRECISION ,
|
|
_tot_recovery DOUBLE PRECISION
|
|
) ON COMMIT DROP;
|
|
|
|
/* Now we call the function using a crafted resource statistics row which
|
|
* will make it easy to check the results.
|
|
*/
|
|
INSERT INTO test_result
|
|
SELECT * FROM verse.create_resource_provider( 12 ,
|
|
ROW( 34 , 0.0 , 0.0 , 0.0 , 0.0 , 5.0 , 0.0 , 0.0 , 0.75 , 0.0 , 0.0 , 0.5 , 0 ) ,
|
|
2 , 10 , 1.5 , 1 );
|
|
|
|
|
|
/***** TESTS BEGIN HERE *****/
|
|
SELECT plan( 11 );
|
|
|
|
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Output exists' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _providers_left updated' );
|
|
SELECT is( _providers_left , 1 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_quantity updated' );
|
|
SELECT is( _tot_quantity::NUMERIC , 5.0 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_difficulty updated' );
|
|
SELECT is( _tot_difficulty::NUMERIC , 0.75 ) FROM test_result;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - _tot_recovery updated' );
|
|
SELECT is( _tot_recovery::NUMERIC , 0.5 ) FROM test_result;
|
|
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider exists' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider primary key' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers
|
|
WHERE planet_id = 12 AND resource_name_id = 34;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider is full' );
|
|
SELECT is( COUNT(*)::INT , 1 ) FROM verse.resource_providers
|
|
WHERE resprov_quantity = resprov_quantity_max;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider maximal quantity' );
|
|
SELECT is( resprov_quantity_max::NUMERIC , 5.0 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider extraction difficulty' );
|
|
SELECT is( resprov_difficulty::NUMERIC , 0.75 ) FROM verse.resource_providers;
|
|
SELECT diag_test_name( 'verse.create_resource_provider( ) - Resource provider recovery rate' );
|
|
SELECT is( resprov_recovery::NUMERIC , 0.5 ) FROM verse.resource_providers;
|
|
|
|
SELECT * FROM finish( );
|
|
ROLLBACK; |