sourcemod/plugins/testsuite/keyvalues.sp
2014-11-08 15:54:40 -08:00

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!");
}