This repository has been archived on 2025-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
lwb6/legacyworlds-server-data/db-structure/tests/admin/functions/055-generator-resources/030-create-resource-provider.sql

62 lines
2.7 KiB
MySQL
Raw Normal View History

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