59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
 | 
						|
#include <sourcemod>
 | 
						|
 | 
						|
public Plugin:myinfo =
 | 
						|
{
 | 
						|
	name		= "KeyValues test",
 | 
						|
	author		= "AlliedModders LLC",
 | 
						|
	description	= "KeyValues test",
 | 
						|
	version		= SOURCEMOD_VERSION,
 | 
						|
	url			= "http://www.sourcemod.net/"
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
public OnPluginStart()
 | 
						|
{
 | 
						|
	RegServerCmd("test_keyvalues", RunTests);
 | 
						|
}
 | 
						|
 | 
						|
public Action:RunTests(argc)
 | 
						|
{
 | 
						|
	new String:validKv[] =
 | 
						|
		"\"root\" \
 | 
						|
		{ \
 | 
						|
			\"child\" \"value\" \
 | 
						|
			\"subkey\" { \
 | 
						|
				subchild subvalue \
 | 
						|
				subfloat 1.0 \
 | 
						|
			} \
 | 
						|
		}";
 | 
						|
 | 
						|
	KeyValues kv = CreateKeyValues("");
 | 
						|
 | 
						|
	if (!kv.ImportFromString(validKv))
 | 
						|
		ThrowError("Valid kv not read correctly!");
 | 
						|
 | 
						|
	char value[128];
 | 
						|
	kv.GetString("child", value, sizeof(value));
 | 
						|
 | 
						|
	if (!StrEqual(value, "value"))
 | 
						|
		ThrowError("Child kv should have 'value' but has: '%s'", value);
 | 
						|
 | 
						|
	if (!kv.JumpToKey("subkey"))
 | 
						|
		ThrowError("No sub kv subkey exists!");
 | 
						|
 | 
						|
	kv.GetString("subchild", value, sizeof(value));
 | 
						|
 | 
						|
	if (!StrEqual(value, "subvalue"))
 | 
						|
		ThrowError("Subkv subvalue should have 'subvalue' but has: '%s'", value);
 | 
						|
 | 
						|
	float subfloat = kv.GetFloat("subfloat");
 | 
						|
 | 
						|
	if (subfloat != 1.0)
 | 
						|
		ThrowError( "Subkv subfloat should have 1.0 but has: %f", subfloat)
 | 
						|
 | 
						|
	delete kv;
 | 
						|
 | 
						|
	PrintToServer("KeyValue tests passed!");
 | 
						|
}
 |