82 lines
No EOL
2.5 KiB
PL/PgSQL
82 lines
No EOL
2.5 KiB
PL/PgSQL
/*
|
|
* Unit tests for emp.resprio_update_apply()
|
|
*/
|
|
BEGIN;
|
|
\i utils/strings.sql
|
|
\i utils/accounts.sql
|
|
\i utils/naming.sql
|
|
|
|
/* Create a pair of empires, a technology, and some empire
|
|
* research & technology records.
|
|
*/
|
|
SELECT _create_emp_names( 2 , 'emp' );
|
|
INSERT INTO emp.empires ( name_id , cash )
|
|
SELECT id , 200.0 FROM naming.empire_names;
|
|
|
|
ALTER TABLE defs.technologies
|
|
ALTER technology_category_id DROP NOT NULL ,
|
|
ALTER technology_discovery_id DROP NOT NULL ,
|
|
ALTER technology_description_id DROP NOT NULL ,
|
|
ALTER technology_price DROP NOT NULL ,
|
|
ALTER technology_points DROP NOT NULL;
|
|
SELECT _create_test_strings( 1 , 'tech' );
|
|
INSERT INTO defs.technologies ( technology_name_id )
|
|
VALUES ( _get_string( 'tech1' ) );
|
|
|
|
INSERT INTO emp.technologies_v2(
|
|
empire_id , technology_name_id ,
|
|
emptech_state , emptech_points , emptech_priority
|
|
) VALUES (
|
|
_get_emp_name( 'emp1' ) , _get_string( 'tech1' ) ,
|
|
'RESEARCH' , 12 , 2
|
|
) , (
|
|
_get_emp_name( 'emp2' ) , _get_string( 'tech1' ) ,
|
|
'RESEARCH' , 12 , 2
|
|
);
|
|
|
|
/* Create a fake temporary table */
|
|
CREATE TEMPORARY TABLE rprio_update(
|
|
_empire_id INT ,
|
|
_technology_name_id INT ,
|
|
_emptech_id TEXT ,
|
|
_emptech_priority INT
|
|
) ON COMMIT DROP;
|
|
|
|
-- ***** TESTS BEGIN HERE *****
|
|
SELECT plan( 4 );
|
|
|
|
INSERT INTO rprio_update
|
|
VALUES ( _get_emp_name( 'emp1' ) , _get_string( 'tech1' ) , 'ignored' , 1 );
|
|
SELECT diag_test_name( 'emp.resprio_update_apply() - Applying a valid update - Return value' );
|
|
SELECT ok( emp.resprio_update_apply( ) );
|
|
SELECT diag_test_name( 'emp.resprio_update_apply() - Applying a valid update - Table contents' );
|
|
SELECT set_eq( $$
|
|
SELECT empire_id , emptech_priority
|
|
FROM emp.technologies_v2
|
|
WHERE technology_name_id = _get_string( 'tech1' );
|
|
$$ , $$ VALUES(
|
|
_get_emp_name( 'emp1' ) , 1
|
|
) , (
|
|
_get_emp_name( 'emp2' ) , 2
|
|
) $$ );
|
|
DELETE FROM rprio_update;
|
|
UPDATE emp.technologies_v2
|
|
SET emptech_priority = 2
|
|
WHERE technology_name_id = _get_string( 'tech1' );
|
|
|
|
INSERT INTO rprio_update
|
|
VALUES ( _get_emp_name( 'emp1' ) , _get_string( 'tech1' ) , 'ignored' , 15 );
|
|
SELECT diag_test_name( 'emp.resprio_update_apply() - Applying an invalid update - Return value' );
|
|
SELECT ok( NOT emp.resprio_update_apply( ) );
|
|
SELECT diag_test_name( 'emp.resprio_update_apply() - Applying an invalid update - Table contents' );
|
|
SELECT set_eq( $$
|
|
SELECT empire_id , emptech_priority
|
|
FROM emp.technologies_v2
|
|
$$ , $$ VALUES(
|
|
_get_emp_name( 'emp1' ) , 2
|
|
) , (
|
|
_get_emp_name( 'emp2' ) , 2
|
|
) $$ );
|
|
|
|
SELECT * FROM finish( );
|
|
ROLLBACK; |