In-game resources views
* Added session records to carry resource information over to the clients * Added SQL support code for the various views * Added interface and implementation of the resource information access component * Hooked resources information queries into both the empire and planet management component * Added resources display to planet and overview pages
This commit is contained in:
parent
56eddcc4f0
commit
597429fadf
45 changed files with 3211 additions and 52 deletions
legacyworlds-server-data/db-structure/tests
admin/040-functions
025-resources
040-empire
145-resource-providers
user/040-functions
025-resources
040-empire
145-resource-providers
utils
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Tests for defs.resource_category_weight_view
|
||||
*/
|
||||
BEGIN;
|
||||
/*
|
||||
* We need a few resources, with a known average per category. Some of the
|
||||
* resources must not belong to any category.
|
||||
*/
|
||||
\i utils/strings.sql
|
||||
SELECT _create_test_strings( 5 , 'resource' );
|
||||
SELECT _create_test_strings( 5 , 'resDesc' );
|
||||
SELECT _create_test_strings( 2 , 'resCat' );
|
||||
|
||||
INSERT INTO defs.resources(
|
||||
resource_name_id , resource_description_id ,
|
||||
resource_category_id , resource_weight
|
||||
) VALUES (
|
||||
_get_string( 'resource1' ) , _get_string( 'resDesc1' ) ,
|
||||
_get_string( 'resCat1' ) , 2
|
||||
) , (
|
||||
_get_string( 'resource2' ) , _get_string( 'resDesc2' ) ,
|
||||
_get_string( 'resCat1' ) , 4
|
||||
) , (
|
||||
_get_string( 'resource3' ) , _get_string( 'resDesc3' ) ,
|
||||
_get_string( 'resCat2' ) , 3
|
||||
) , (
|
||||
_get_string( 'resource4' ) , _get_string( 'resDesc4' ) ,
|
||||
_get_string( 'resCat2' ) , 5
|
||||
) , (
|
||||
_get_string( 'resource5' ) , _get_string( 'resDesc5' ) ,
|
||||
NULL , 150
|
||||
);
|
||||
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'defs.resource_category_weight_view - Resulting set contains correct values' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT * FROM defs.resource_category_weight_view $$ ,
|
||||
$$ VALUES (
|
||||
_get_string( 'resCat1' ) , 3
|
||||
) , (
|
||||
_get_string( 'resCat2' ) , 4
|
||||
) $$
|
||||
);
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* Tests for defs.ordered_resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
|
||||
/*
|
||||
* We need:
|
||||
* - one resource without category with weight 1,
|
||||
* - one resource with category 1 and weight 2,
|
||||
* - one resource with weight 4 and no category,
|
||||
* - two resourcew with weights 3 and 7 and category 2.
|
||||
*/
|
||||
\i utils/strings.sql
|
||||
SELECT _create_test_strings( 5 , 'resource' );
|
||||
SELECT _create_test_strings( 5 , 'resDesc' );
|
||||
SELECT _create_test_strings( 2 , 'resCat' );
|
||||
|
||||
INSERT INTO defs.resources(
|
||||
resource_name_id , resource_description_id ,
|
||||
resource_category_id , resource_weight
|
||||
) VALUES (
|
||||
_get_string( 'resource1' ) , _get_string( 'resDesc1' ) ,
|
||||
NULL , 1
|
||||
) , (
|
||||
_get_string( 'resource2' ) , _get_string( 'resDesc2' ) ,
|
||||
_get_string( 'resCat1' ) , 2
|
||||
) , (
|
||||
_get_string( 'resource3' ) , _get_string( 'resDesc3' ) ,
|
||||
NULL , 4
|
||||
) , (
|
||||
_get_string( 'resource4' ) , _get_string( 'resDesc4' ) ,
|
||||
_get_string( 'resCat2' ) , 3
|
||||
) , (
|
||||
_get_string( 'resource5' ) , _get_string( 'resDesc5' ) ,
|
||||
_get_string( 'resCat2' ) , 7
|
||||
);
|
||||
|
||||
SELECT plan( 1 );
|
||||
SELECT diag_test_name( 'defs.ordered_resources_view - Resources are in the correct order' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_name_id , resource_ordering
|
||||
FROM defs.ordered_resources_view $$ ,
|
||||
$$ VALUES (
|
||||
_get_string( 'resource1' ) , 1
|
||||
) , (
|
||||
_get_string( 'resource2' ) , 2
|
||||
) , (
|
||||
_get_string( 'resource3' ) , 3
|
||||
) , (
|
||||
_get_string( 'resource4' ) , 4
|
||||
) , (
|
||||
_get_string( 'resource5' ) , 5
|
||||
) $$
|
||||
);
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* Tests for emp.planet_resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
/*
|
||||
* Create two empires, one with 2 planets, the other without. Add 2 planet
|
||||
* resources records.
|
||||
*
|
||||
* Disable all foreign keys to avoid a lot of work.
|
||||
*/
|
||||
|
||||
ALTER TABLE emp.planets
|
||||
DROP CONSTRAINT fk_eplanets_empire ,
|
||||
DROP CONSTRAINT fk_eplanets_planet;
|
||||
ALTER TABLE verse.planet_resources
|
||||
DROP CONSTRAINT fk_pres_planet ,
|
||||
DROP CONSTRAINT fk_pres_resource;
|
||||
|
||||
INSERT INTO verse.planet_resources (
|
||||
planet_id , resource_name_id , pres_income , pres_upkeep
|
||||
) VALUES
|
||||
( 1 , 1 , 1 , 2 ) , ( 1 , 2 , 3 , 4 ) ,
|
||||
( 2 , 1 , 3 , 4 ) , ( 2 , 2 , 5 , 6 ) ,
|
||||
( 3 , 1 , 0.1 / 720 , 0.4 / 720 ) ,
|
||||
( 3 , 2 , 0.9 / 720, 0.9 / 720 );
|
||||
INSERT INTO emp.planets( empire_id , planet_id )
|
||||
VALUES ( 1 , 1 ) , ( 1 , 2 ) , ( 2 , 3 );
|
||||
|
||||
|
||||
/***** TESTS BEGIN HERE *****/
|
||||
SELECT plan( 3 );
|
||||
|
||||
SELECT diag_test_name( 'emp.planet_resources_view - Sums' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT * FROM emp.planet_resources_view WHERE empire_id = 1 $$ ,
|
||||
$$ VALUES ( 1 , 1 , 4 * 720 , 6 * 720 ) , ( 1 , 2 , 8 * 720 , 10 * 720 ) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.planet_resources_view - Incomes are rounded down' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_name_id , planets_income
|
||||
FROM emp.planet_resources_view
|
||||
WHERE empire_id = 2 $$ ,
|
||||
$$ VALUES ( 1 , 0 ) , ( 2 , 0 ) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.planet_resources_view - Upkeeps are rounded up' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_name_id , planets_upkeep
|
||||
FROM emp.planet_resources_view
|
||||
WHERE empire_id = 2 $$ ,
|
||||
$$ VALUES ( 1 , 1 ) , ( 2 , 1 ) $$
|
||||
);
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,169 @@
|
|||
/*
|
||||
* Tests for emp.resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
|
||||
/*
|
||||
* We will use a fake emp.planet_resources_view to avoid having to set
|
||||
* planet resources.
|
||||
*
|
||||
* In terms of data, we need two resources (one with a category, the other
|
||||
* without, and two empires (one with "planet resources", the other
|
||||
* without). Both empires will have mining settings for one of the resource
|
||||
* types.
|
||||
*/
|
||||
|
||||
\i utils/strings.sql
|
||||
SELECT _create_test_strings( 2 , 'resource' , 'Resource name ' );
|
||||
SELECT _create_test_strings( 2 , 'rDesc' , 'Resource description ' );
|
||||
SELECT _create_test_strings( 1 , 'rCat' , 'Resource category ' );
|
||||
|
||||
INSERT INTO defs.resources (
|
||||
resource_name_id , resource_description_id ,
|
||||
resource_category_id , resource_weight
|
||||
) VALUES (
|
||||
_get_string( 'resource1' ) , _get_string( 'rDesc1' ) ,
|
||||
_get_string( 'rCat1' ) , 2
|
||||
) , (
|
||||
_get_string( 'resource2' ) , _get_string( 'rDesc2' ) ,
|
||||
NULL , 1
|
||||
);
|
||||
|
||||
\i utils/accounts.sql
|
||||
\i utils/naming.sql
|
||||
SELECT _create_emp_names( 2 , 'emp' );
|
||||
INSERT INTO emp.empires( name_id , cash )
|
||||
SELECT id , 0 FROM naming.empire_names;
|
||||
|
||||
ALTER TABLE emp.mining_settings DROP CONSTRAINT fk_empmset_resource;
|
||||
INSERT INTO emp.mining_settings ( empire_id , resource_name_id , empmset_weight )
|
||||
SELECT id , _get_string( 'resource1' ) , row_number( ) OVER ()
|
||||
FROM naming.empire_names
|
||||
ORDER BY id;
|
||||
|
||||
INSERT INTO emp.resources ( empire_id , resource_name_id , empres_possessed )
|
||||
SELECT name_id , resource_name_id , 0.4 * row_number( ) OVER ()
|
||||
FROM emp.empires
|
||||
CROSS JOIN defs.resources
|
||||
ORDER BY name_id , resource_name_id;
|
||||
|
||||
|
||||
CREATE TABLE fake_planet_resources_view (
|
||||
empire_id INT ,
|
||||
resource_name_id INT ,
|
||||
planets_income BIGINT ,
|
||||
planets_upkeep BIGINT
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW emp.planet_resources_view
|
||||
AS SELECT * FROM fake_planet_resources_view;
|
||||
|
||||
INSERT INTO fake_planet_resources_view
|
||||
VALUES (
|
||||
_get_emp_name( 'emp1' ) , _get_string( 'resource1' ) , 1 , 2
|
||||
) , (
|
||||
_get_emp_name( 'emp1' ) , _get_string( 'resource2' ) , 3 , 4
|
||||
);
|
||||
|
||||
|
||||
/***** TESTS BEGIN HERE *****/
|
||||
SELECT plan( 13 );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - One row per empire/resource combination' );
|
||||
SELECT is( COUNT(*)::INT , 4 ) FROM emp.resources_view;
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Resource ordering' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_identifier , row_number( ) OVER ( )
|
||||
FROM emp.resources_view
|
||||
WHERE empire_id = _get_emp_name( 'emp1' ) $$ ,
|
||||
$$ VALUES ( 'resource2' , 1 ) , ( 'resource1' , 2 ) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Name translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.resources_view
|
||||
WHERE resource_name NOT LIKE 'Resource name %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Description translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.resources_view
|
||||
WHERE resource_description NOT LIKE 'Resource description %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Category translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.resources_view
|
||||
WHERE resource_identifier = 'resource1'
|
||||
AND resource_category NOT LIKE 'Resource category %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - NULL category -> NULL translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.resources_view
|
||||
WHERE resource_identifier <> 'resource1'
|
||||
AND resource_category IS NOT NULL
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Possessed quantities are rounded down' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT empire_id , resource_identifier , empres_possessed
|
||||
FROM emp.resources_view $$ ,
|
||||
$$ VALUES (
|
||||
_get_emp_name( 'emp1' ) , 'resource1' , 0
|
||||
) , (
|
||||
_get_emp_name( 'emp1' ) , 'resource2' , 0
|
||||
) , (
|
||||
_get_emp_name( 'emp2' ) , 'resource1' , 1
|
||||
) , (
|
||||
_get_emp_name( 'emp2' ) , 'resource2' , 1
|
||||
) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Basic resources have NULL mining settings' );
|
||||
SELECT is( COUNT(*)::INT , 2 )
|
||||
FROM emp.resources_view
|
||||
WHERE resource_identifier = 'resource2'
|
||||
AND empmset_weight IS NULL;
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Mining settings for natural resources' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT empire_id , empmset_weight
|
||||
FROM emp.resources_view
|
||||
WHERE resource_identifier = 'resource1' $$ ,
|
||||
$$ VALUES ( _get_emp_name( 'emp1' ) , 1 ) ,
|
||||
( _get_emp_name( 'emp2' ) , 2 ) $$
|
||||
);
|
||||
SELECT is( COUNT(*)::INT , 2 )
|
||||
FROM emp.resources_view
|
||||
WHERE resource_identifier = 'resource1'
|
||||
AND empmset_weight IS NOT NULL;
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Planet upkeep/income is zero when there are no planets' );
|
||||
SELECT is( COUNT(*)::INT , 2 )
|
||||
FROM emp.resources_view
|
||||
WHERE empire_id = _get_emp_name( 'emp2' )
|
||||
AND planets_upkeep = 0
|
||||
AND planets_income = 0;
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Planet upkeep/income from planet resources view' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_identifier , planets_upkeep , planets_income
|
||||
FROM emp.resources_view
|
||||
WHERE empire_id = _get_emp_name( 'emp1' ) $$ ,
|
||||
$$ VALUES ( 'resource1' , 2 , 1 ) , ( 'resource2' , 4 , 3 ) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - FIXME - Fleets upkeep set to zero' );
|
||||
SELECT is_empty(
|
||||
$$ SELECT * FROM emp.resources_view
|
||||
WHERE fleets_upkeep <> 0 $$
|
||||
);
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,187 @@
|
|||
/*
|
||||
* Tests for the emp.get_planet_resources() function
|
||||
*/
|
||||
BEGIN;
|
||||
/*
|
||||
* We need two planets, one being owned by some empire, the other being
|
||||
* neutral. Both planets' resource records must exist. Both planets will
|
||||
* also include resource providers which will serve as tests for the
|
||||
* various rounding which takes place.
|
||||
*
|
||||
* To avoid having to define actual natural resources, we disable the
|
||||
* foreign keys on resource providers and mining settings. We can't do
|
||||
* that for the empire, tho: we need an actual account as the translations
|
||||
* must be looked up.
|
||||
*/
|
||||
|
||||
\i utils/strings.sql
|
||||
SELECT _create_test_strings( 3 , 'resource' , 'Resource name ' );
|
||||
SELECT _create_test_strings( 3 , 'rDesc' , 'Resource description ' );
|
||||
SELECT _create_test_strings( 1 , 'rCat' , 'Resource category ' );
|
||||
|
||||
INSERT INTO defs.resources (
|
||||
resource_name_id , resource_description_id ,
|
||||
resource_category_id , resource_weight
|
||||
) VALUES (
|
||||
_get_string( 'resource1' ) , _get_string( 'rDesc1' ) ,
|
||||
_get_string( 'rCat1' ) , 2
|
||||
) , (
|
||||
_get_string( 'resource2' ) , _get_string( 'rDesc2' ) ,
|
||||
NULL , 1
|
||||
) , (
|
||||
_get_string( 'resource3' ) , _get_string( 'rDesc3' ) ,
|
||||
NULL , 3
|
||||
);
|
||||
|
||||
\i utils/accounts.sql
|
||||
\i utils/naming.sql
|
||||
SELECT _create_emp_names( 1 , 'emp' );
|
||||
INSERT INTO emp.empires( name_id , cash )
|
||||
VALUES( _get_emp_name( 'emp1' ) , 0 );
|
||||
|
||||
ALTER TABLE emp.mining_settings DROP CONSTRAINT fk_empmset_resource;
|
||||
INSERT INTO emp.mining_settings ( empire_id , resource_name_id )
|
||||
SELECT _get_emp_name( 'emp1' ) , resource_name_id
|
||||
FROM defs.resources;
|
||||
|
||||
\i utils/universe.sql
|
||||
SELECT _create_raw_planets( 2 , 'planet' );
|
||||
|
||||
INSERT INTO verse.planet_resources (
|
||||
planet_id , resource_name_id , pres_income , pres_upkeep
|
||||
) VALUES (
|
||||
_get_map_name( 'planet1' ) , _get_string( 'resource1' ) ,
|
||||
99.4 / 720.0 , 99.4 / 720.0
|
||||
) , (
|
||||
_get_map_name( 'planet1' ) , _get_string( 'resource2' ) ,
|
||||
99.5 / 720.0 , 99.5 / 720.0
|
||||
) , (
|
||||
_get_map_name( 'planet1' ) , _get_string( 'resource3' ) ,
|
||||
99.6 / 720.0 , 99.6 / 720.0
|
||||
);
|
||||
INSERT INTO verse.planet_resources ( planet_id , resource_name_id )
|
||||
SELECT _get_map_name( 'planet2' ) , resource_name_id
|
||||
FROM defs.resources;
|
||||
|
||||
ALTER TABLE verse.resource_providers DROP CONSTRAINT fk_resprov_resource;
|
||||
INSERT INTO verse.resource_providers(
|
||||
planet_id , resource_name_id , resprov_quantity_max ,
|
||||
resprov_quantity , resprov_difficulty , resprov_recovery
|
||||
) VALUES (
|
||||
_get_map_name( 'planet1' ) , _get_string( 'resource1' ) , 99.4 ,
|
||||
99.4 , 0.494 , 0.5
|
||||
) , (
|
||||
_get_map_name( 'planet1' ) , _get_string( 'resource2' ) , 99.5 ,
|
||||
99.5 , 0.495 , 0.5
|
||||
) , (
|
||||
_get_map_name( 'planet2' ) , _get_string( 'resource1' ) , 100 ,
|
||||
100 , 0.5 , 0.5
|
||||
);
|
||||
|
||||
INSERT INTO emp.planets ( empire_id , planet_id )
|
||||
VALUES ( _get_emp_name( 'emp1' ) , _get_map_name( 'planet1' ) );
|
||||
|
||||
|
||||
/***** TESTS BEGIN HERE *****/
|
||||
SELECT plan( 13 );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - No results on missing planets' );
|
||||
SELECT is_empty( $$ SELECT * FROM emp.get_planet_resources( _get_bad_map_name( ) ) $$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - No results on neutral planets' );
|
||||
SELECT is_empty( $$ SELECT * FROM emp.get_planet_resources( _get_map_name( 'planet2' ) ) $$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - One row per resource type' );
|
||||
SELECT is( COUNT(*)::INT , 3 ) FROM emp.get_planet_resources( _get_map_name( 'planet1' ) );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Row ordering' );
|
||||
SELECT set_eq(
|
||||
$$ SELECT resource_identifier , row_number() OVER ( )
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) ) $$ ,
|
||||
$$ VALUES (
|
||||
'resource1' , 2
|
||||
) , (
|
||||
'resource2' , 1
|
||||
) , (
|
||||
'resource3' , 3
|
||||
) $$
|
||||
);
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Name translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_name NOT LIKE 'Resource name %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Description translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_description NOT LIKE 'Resource description %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Category translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_identifier = 'resource1'
|
||||
AND resource_category NOT LIKE 'Resource category %'
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - NULL category -> NULL translation' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_identifier <> 'resource1'
|
||||
AND resource_category IS NOT NULL
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Upkeep is valid and rounded up' );
|
||||
SELECT is_empty( $$
|
||||
SELECT *
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE pres_upkeep IS NULL OR pres_upkeep <> 100
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Income is valid and rounded down' );
|
||||
SELECT is_empty( $$
|
||||
SELECT * FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE pres_income IS NULL OR pres_income <> 99
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - No mining-related fields when there is no resource provider' );
|
||||
SELECT is_empty( $$
|
||||
SELECT * FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_identifier = 'resource3' AND NOT (
|
||||
resprov_capacity IS NULL
|
||||
AND resprov_quantity IS NULL
|
||||
AND resprov_difficulty IS NULL
|
||||
AND mset_weight IS NULL
|
||||
);
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Resource provider fields are present' );
|
||||
SELECT is_empty( $$
|
||||
SELECT * FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_identifier <> 'resource3' AND (
|
||||
resprov_capacity IS NULL
|
||||
OR resprov_quantity IS NULL
|
||||
OR resprov_difficulty IS NULL
|
||||
OR mset_weight IS NULL
|
||||
);
|
||||
$$ );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Resource provider values' );
|
||||
SELECT set_eq( $$
|
||||
SELECT resource_identifier , resprov_capacity , resprov_quantity , resprov_difficulty
|
||||
FROM emp.get_planet_resources( _get_map_name( 'planet1' ) )
|
||||
WHERE resource_identifier <> 'resource3'
|
||||
$$ , $$ VALUES (
|
||||
'resource1' , 99 , 99 , 49
|
||||
) , (
|
||||
'resource2' , 100 , 100 , 50
|
||||
) $$ );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* Test privileges on defs.resource_category_weight_view
|
||||
*/
|
||||
BEGIN;
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'defs.resource_category_weight_view - Privileges' );
|
||||
SELECT throws_ok( 'SELECT * FROM defs.resource_category_weight_view' , 42501 );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* Test privileges on defs.ordered_resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'defs.ordered_resources_view - Privileges' );
|
||||
SELECT throws_ok( 'SELECT * FROM defs.ordered_resources_view' , 42501 );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* Test privileges on emp.planet_resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'emp.planet_resources_view - Privileges' );
|
||||
SELECT throws_ok( 'SELECT * FROM emp.planet_resources_view' , 42501 );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
* Test privileges on emp.resources_view
|
||||
*/
|
||||
BEGIN;
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'emp.resources_view - Privileges' );
|
||||
SELECT lives_ok( 'SELECT * FROM emp.resources_view' );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* Test privileges on emp.get_planet_resources()
|
||||
*/
|
||||
BEGIN;
|
||||
SELECT plan( 1 );
|
||||
|
||||
SELECT diag_test_name( 'emp.get_planet_resources() - Privileges' );
|
||||
SELECT lives_ok( $$
|
||||
SELECT emp.get_planet_resources( 1 )
|
||||
$$ );
|
||||
|
||||
SELECT * FROM finish( );
|
||||
ROLLBACK;
|
|
@ -29,24 +29,11 @@ CREATE FUNCTION _get_string( TEXT ) RETURNS INT AS $$
|
|||
$$ LANGUAGE SQL;
|
||||
|
||||
|
||||
/*
|
||||
* Function that creates some quantity of test strings
|
||||
*/
|
||||
CREATE FUNCTION _create_test_strings( _quantity INT )
|
||||
RETURNS VOID
|
||||
AS $$
|
||||
DECLARE
|
||||
i INT;
|
||||
BEGIN
|
||||
PERFORM _create_test_strings( _quantity , 'test' );
|
||||
END;
|
||||
$$ LANGUAGE PLPGSQL;
|
||||
|
||||
|
||||
/*
|
||||
* Function that creates some quantity of test strings using a specific prefix
|
||||
* and translation prefix.
|
||||
*/
|
||||
CREATE FUNCTION _create_test_strings( _quantity INT , _prefix TEXT )
|
||||
CREATE FUNCTION _create_test_strings( _quantity INT , _prefix TEXT , _trans TEXT )
|
||||
RETURNS VOID
|
||||
AS $$
|
||||
DECLARE
|
||||
|
@ -59,7 +46,27 @@ BEGIN
|
|||
LOOP
|
||||
i := i + 1;
|
||||
PERFORM defs.uoc_translation( 't' , _prefix || i::TEXT ,
|
||||
'Test string #' || i::TEXT );
|
||||
_trans || i::TEXT );
|
||||
END LOOP;
|
||||
END;
|
||||
$$ LANGUAGE PLPGSQL;
|
||||
|
||||
/*
|
||||
* Function that creates some quantity of test strings using a specific prefix
|
||||
*/
|
||||
CREATE FUNCTION _create_test_strings( _quantity INT , _prefix TEXT )
|
||||
RETURNS VOID
|
||||
AS $$
|
||||
SELECT _create_test_strings( $1 , $2 , 'Test string #' );
|
||||
$$ LANGUAGE SQL;
|
||||
|
||||
|
||||
/*
|
||||
* Function that creates some quantity of test strings
|
||||
*/
|
||||
CREATE FUNCTION _create_test_strings( _quantity INT )
|
||||
RETURNS VOID
|
||||
AS $$
|
||||
SELECT _create_test_strings( $1 , 'test' );
|
||||
$$ LANGUAGE SQL;
|
||||
|
||||
|
|
Reference in a new issue