Emmanuel BENOîT
56eddcc4f0
* Added a set of tables which define game updates and their targets. These definitions replace the old enumerate type. Added a set of triggers which automatically create specific update tables, insert missing entries, etc... when game update types are being manipulated. * Removed manual insertion of game updates from empire creation function and universe generator. * Added registration of core update targets (i.e. planets and empires), updated all existing game update processing functions and added type registrations * Created Maven project for game updates control components, moved existing components from the -simple project, rewritten most of what they contained, added new components for server-side update batch processing
108 lines
No EOL
5.2 KiB
PL/PgSQL
108 lines
No EOL
5.2 KiB
PL/PgSQL
/*
|
|
* Test the sys.process_empire_resources_updates() function
|
|
*/
|
|
BEGIN;
|
|
/* Start by deleting all update types except for the one
|
|
* we're interested in.
|
|
*/
|
|
DELETE FROM sys.update_types
|
|
WHERE updtype_name <> 'EmpireResources';
|
|
|
|
/* We need:
|
|
* - three types of resources,
|
|
* - two empire with resources records, and the corresponding update
|
|
* record,
|
|
* - two planets, set to belong to the aforementioned empires, with
|
|
* resources records attached.
|
|
*/
|
|
\i utils/strings.sql
|
|
\i utils/resources.sql
|
|
\i utils/accounts.sql
|
|
\i utils/naming.sql
|
|
\i utils/universe.sql
|
|
SELECT _create_resources( 3 , 'testResource' );
|
|
SELECT _create_raw_planets( 2 , 'testPlanet' );
|
|
SELECT _create_emp_names( 2 , 'testEmp' );
|
|
SELECT emp.create_empire( _get_emp_name( 'testEmp1' ) , _get_map_name( 'testPlanet1' ) , 1 );
|
|
INSERT INTO verse.planet_resources ( planet_id , resource_name_id )
|
|
SELECT _get_map_name( 'testPlanet1' ) , resource_name_id FROM defs.resources;
|
|
INSERT INTO verse.planet_resources ( planet_id , resource_name_id )
|
|
SELECT _get_map_name( 'testPlanet2' ) , resource_name_id FROM defs.resources;
|
|
|
|
/* Set up the planets' resource records so that:
|
|
* - income > upkeep for testResource1 ,
|
|
* - income < upkeep for testResource2 ,
|
|
* - income = upkeep = 0 for testResource3 ,
|
|
*/
|
|
UPDATE verse.planet_resources SET pres_income = 12
|
|
WHERE resource_name_id = _get_string( 'testResource1' );
|
|
UPDATE verse.planet_resources SET pres_upkeep = 34
|
|
WHERE resource_name_id = _get_string( 'testResource2' );
|
|
|
|
/* Make sure update 0 is set to be processed for testEmp1 */
|
|
UPDATE sys.updates
|
|
SET update_state = 'PROCESSING' , update_last = 0;
|
|
|
|
/* Create testEmp2 empire, make sure it will not be processed */
|
|
SELECT emp.create_empire( _get_emp_name( 'testEmp2' ) , _get_map_name( 'testPlanet2' ) , 1 );
|
|
UPDATE sys.updates _su
|
|
SET update_state = 'PROCESSED' , update_last = 0
|
|
FROM emp.empires_updates _eu
|
|
WHERE _eu.update_id = _su.update_id
|
|
AND _eu.name_id = _get_emp_name( 'testEmp2' );
|
|
|
|
/****** TESTS BEGIN HERE ******/
|
|
SELECT plan( 19 );
|
|
|
|
SELECT sys.process_empire_resources_updates( 10 );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (1/6)' );
|
|
SELECT is( empres_possessed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (2/6)' );
|
|
SELECT is( empres_owed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (3/6)' );
|
|
SELECT is( empres_possessed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource2' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (4/6)' );
|
|
SELECT is( empres_owed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource2' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (5/6)' );
|
|
SELECT is( empres_possessed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource3' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Wrong update identifier (6/6)' );
|
|
SELECT is( empres_owed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource3' );
|
|
|
|
SELECT sys.process_empire_resources_updates( 0 );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 1 - Possessed quantity increased' );
|
|
SELECT is( empres_possessed , 12::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource1' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 1 - Owed quantity unchanged' );
|
|
SELECT is( empres_owed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource1' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 2 - Possessed quantity unchanged' );
|
|
SELECT is( empres_possessed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource2' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 2 - Owed quantity increased' );
|
|
SELECT is( empres_owed , 34::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource2' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 3 - Possessed quantity unchanged' );
|
|
SELECT is( empres_possessed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource3' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resource 3 - Owed quantity unchanged' );
|
|
SELECT is( empres_owed , 0::DOUBLE PRECISION ) FROM emp.resources
|
|
WHERE resource_name_id = _get_string( 'testResource3' )
|
|
AND empire_id = _get_emp_name( 'testEmp1' );
|
|
SELECT diag_test_name( 'EMPIRE_RESOURCES update - Resources unchanged for already processed empire' );
|
|
SELECT is( SUM( empres_owed + empres_possessed ) , 0::DOUBLE PRECISION )
|
|
FROM emp.resources
|
|
WHERE empire_id = _get_emp_name( 'testEmp2' );
|
|
|
|
SELECT * FROM finish( );
|
|
ROLLBACK; |