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/functions/025-resources/010-uoc-resource-internal.sql

74 lines
3.6 KiB
MySQL
Raw Normal View History

/*
* Test the defs.uoc_resource_internal() function
*/
BEGIN;
/* We need a few strings to be used when creating resource definitions, and a natural resource. */
\i utils/strings.sql
\i utils/resources.sql
SELECT _create_test_strings( 7 );
SELECT _create_natural_resources( 1 , 'natRes' );
/****** TESTS BEGIN HERE ******/
SELECT plan( 15 );
SELECT diag_test_name( 'defs.uoc_resource_internal() - creation without category' );
SELECT is( defs.uoc_resource_internal( 'test3' , 'test4' , NULL , 1 ) , 'CREATED' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - creation results without category' );
SELECT results_eq(
$$ SELECT resource_name_id , resource_description_id , resource_weight
FROM defs.resources
WHERE resource_name_id = _get_string( 'test3' )
AND resource_category_id IS NULL $$ ,
$$ VALUES ( _get_string( 'test3' ) , _get_string( 'test4' ) , 1 ) $$
);
SELECT diag_test_name( 'defs.uoc_resource_internal() - creation with category' );
SELECT is( defs.uoc_resource_internal( 'test5' , 'test6' , 'test7' , 1 ) , 'CREATED' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - creation results with category' );
SELECT results_eq(
$$ SELECT * FROM defs.resources
WHERE resource_name_id = _get_string( 'test5' ) $$ ,
$$ VALUES ( _get_string( 'test5' ) , _get_string( 'test6' ) , _get_string( 'test7' ) , 1 ) $$
);
SELECT diag_test_name( 'defs.uoc_resource_internal() - update without category' );
SELECT is( defs.uoc_resource_internal( 'test3' , 'test7' , NULL , 2 ) , 'UPDATED' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - update results without category' );
SELECT results_eq(
$$ SELECT resource_name_id , resource_description_id , resource_weight
FROM defs.resources
WHERE resource_name_id = _get_string( 'test3' )
AND resource_category_id IS NULL $$ ,
$$ VALUES ( _get_string( 'test3' ) , _get_string( 'test7' ) , 2 ) $$
);
SELECT diag_test_name( 'defs.uoc_resource_internal() - update with category' );
SELECT is( defs.uoc_resource_internal( 'test3' , 'test4' , 'test7' , 1 ) , 'UPDATED' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - update results with category' );
SELECT results_eq(
$$ SELECT * FROM defs.resources
WHERE resource_name_id = _get_string( 'test3' ) $$ ,
$$ VALUES ( _get_string( 'test3' ) , _get_string( 'test4' ) , _get_string( 'test7' ) , 1 ) $$
);
SELECT diag_test_name( 'defs.uoc_resource_internal() - incorrect name string' );
SELECT is( defs.uoc_resource_internal( 'does-not-exist' , 'test2' , NULL , 1 ) , 'BAD_STRINGS' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - incorrect description string' );
SELECT is( defs.uoc_resource_internal( 'test1' , 'does-not-exist' , NULL , 1 ) , 'BAD_STRINGS' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - incorrect category string' );
SELECT is( defs.uoc_resource_internal( 'test1' , 'test2' , 'does-not-exist' , 1 ) , 'BAD_STRINGS' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - duplicate description on new resource' );
SELECT is( defs.uoc_resource_internal( 'test1' , 'test4' , NULL , 1 ) , 'DUP_DESCR' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - duplicate description on existing resource' );
SELECT is( defs.uoc_resource_internal( 'test5' , 'test4' , NULL , 1 ) , 'DUP_DESCR' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - update on natural resource' );
SELECT is( defs.uoc_resource_internal( 'natRes1' , 'test2' , NULL , 1 ) , 'BAD_TYPE' );
SELECT diag_test_name( 'defs.uoc_resource_internal() - weight <= 0' );
SELECT is( defs.uoc_resource_internal( 'test1' , 'test2' , NULL , 0 ) , 'BAD_VALUE' );
SELECT * FROM finish( );
ROLLBACK;