server/src/triggers/shock.test.c

57 lines
1.3 KiB
C

#include <platform.h>
#include "shock.h"
#include <magic.h>
#include <kernel/unit.h>
#include <kernel/faction.h>
#include <util/event.h>
#include <tests.h>
#include <CuTest.h>
static void test_shock(CuTest *tc) {
unit *u;
trigger *tt;
test_setup();
u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0));
create_mage(u, M_GRAY);
set_level(u, SK_MAGIC, 5);
set_spellpoints(u, 10);
u->hp = 10;
tt = trigger_shock(u);
tt->type->handle(tt, u);
CuAssertIntEquals(tc, 2, u->hp);
CuAssertIntEquals(tc, 2, get_spellpoints(u));
CuAssertPtrNotNull(tc, test_find_messagetype(u->faction->msgs, "shock"));
t_free(tt);
free(tt);
test_cleanup();
}
static void test_shock_low(CuTest *tc) {
unit *u;
trigger *tt;
test_setup();
u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0));
create_mage(u, M_GRAY);
set_level(u, SK_MAGIC, 5);
set_spellpoints(u, 1);
u->hp = 1;
tt = trigger_shock(u);
tt->type->handle(tt, u);
CuAssertIntEquals(tc, 1, u->hp);
CuAssertIntEquals(tc, 1, get_spellpoints(u));
t_free(tt);
free(tt);
test_cleanup();
}
CuSuite *get_shock_suite(void)
{
CuSuite *suite = CuSuiteNew();
SUITE_ADD_TEST(suite, test_shock);
SUITE_ADD_TEST(suite, test_shock_low);
return suite;
}