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/040-functions/030-tech/020-uoc-technology-update.sql

82 lines
2.6 KiB
MySQL
Raw Normal View History

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