Emmanuel BENOîT
af57e7d3b5
* Added stored procedures which manipulate technology definitions themselves (defs.uoc_technology) or their dependencies (defs.techdep_add and defs.techdep_remove)
82 lines
No EOL
2.6 KiB
PL/PgSQL
82 lines
No EOL
2.6 KiB
PL/PgSQL
/*
|
|
* Test the defs.uoc_technology() function for existing technologies
|
|
*/
|
|
BEGIN;
|
|
\i utils/strings.sql
|
|
|
|
/*
|
|
* We need a few test strings to play with. Each technology definition
|
|
* uses four strings (name, category, discovery and description) so we'll
|
|
* create 8.
|
|
*/
|
|
SELECT _create_test_strings( 8 , 's' );
|
|
|
|
/* Insert two entries. */
|
|
INSERT INTO defs.technologies (
|
|
technology_name_id , technology_category_id ,
|
|
technology_discovery_id , technology_description_id ,
|
|
technology_price , technology_points
|
|
) VALUES (
|
|
_get_string( 's1' ) , _get_string( 's2' ) ,
|
|
_get_string( 's3' ) , _get_string( 's4' ) ,
|
|
1 , 1
|
|
) , (
|
|
_get_string( 's5' ) , _get_string( 's6' ) ,
|
|
_get_string( 's7' ) , _get_string( 's8' ) ,
|
|
1 , 1
|
|
);
|
|
|
|
-- ***** TESTS BEGIN HERE *****
|
|
SELECT plan( 9 );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Invalid category string' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 'does not exist' , 's3' , 's4' , 1 , 1
|
|
)::TEXT , 'BAD_STRINGS' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Invalid discovery string' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 'does not exist' , 's4' , 1 , 1
|
|
)::TEXT , 'BAD_STRINGS' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Invalid description string' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 's3' , 'does not exist' , 1 , 1
|
|
)::TEXT , 'BAD_STRINGS' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Invalid price' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 's3' , 's4' , 0 , 1
|
|
)::TEXT , 'BAD_VALUE' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Invalid research points' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 's3' , 's4' , 1 , 0
|
|
)::TEXT , 'BAD_VALUE' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Duplicate description string' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 's7' , 's4' , 1 , 1
|
|
)::TEXT , 'DUP_STRING' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Duplicate discovery string' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's2' , 's3' , 's8' , 1 , 1
|
|
)::TEXT , 'DUP_STRING' );
|
|
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Success' );
|
|
SELECT is( defs.uoc_technology(
|
|
's1' , 's4' , 's2' , 's3' , 2 , 3
|
|
)::TEXT , 'UPDATED' );
|
|
SELECT diag_test_name( 'defs.uoc_technology() - Update - Row contents after success' );
|
|
SELECT set_eq( $$
|
|
SELECT * FROM defs.technologies
|
|
WHERE technology_name_id = _get_string( 's1' )
|
|
$$ , $$ VALUES(
|
|
_get_string( 's1' ) , _get_string( 's4' ) ,
|
|
_get_string( 's2' ) , _get_string( 's3' ) ,
|
|
2 , 3
|
|
) $$ );
|
|
|
|
SELECT * FROM finish( );
|
|
ROLLBACK; |