62 lines
2.7 KiB
MySQL
62 lines
2.7 KiB
MySQL
|
/*
|
||
|
* 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;
|