PerlRPG/Tests/Script.pl

33 lines
1.2 KiB
Perl
Executable File

#!/usr/bin/perl -w
use strict;
use warnings;
use PerlRPG::Console;
use PerlRPG::Script;
use Test::More;
$PerlRPG::Console::LogLevel = ERROR;
ok( !GetGameVar("TestVar"), "Undefined GetGameVar should fail");
ok( !SetGameVar("TestVar"), "Undefined SetGameVar should fail");
$PerlRPG::Console::LogLevel = WARN;
DefGameVar('TestVar', 1);
ok( GetGameVar("TestVar") == 1, "Defined GetGameVar should be 1");
ok( SetGameVar("TestVar", 2) == 2, "Defined SetGameVar(2) should be 2");
DefGameVar('TestVar', 1);
ok( SetGameVar("TestVar", 2) == 2, "Redefined GameVar=1 should still be 2");
PerlRPG::Script::RunScriptLine("test", 1, "TestVar = TestVar + 1");
ok( GetGameVar("TestVar")==3, "RunScriptLine sets TestVar to 3");
ok( PerlRPG::Script::IsString("\"foo\""), "'\"foo\"' is a string");
ok( PerlRPG::Script::IsString("foo")==0, "'foo' is not a string");
ok( PerlRPG::Script::IsString(5)==0, "'5' is not a string");
ok( EvalString("\"[TestVar]\"") eq '3', "\"[TestVar]\" is 3");
ok( EvalString("3 + 3") == 6, "\"3 + 3\" == 6");
ok( EvalString("lc('FoO') . uc('FoO')") eq 'fooFOO', "String function test");
SetGameVar("TestVar", "\"FoO\"");
ok( EvalString("uc(\" [TestVar] \")") eq ' FOO ', "Complex string function test");
done_testing();