diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4616fc8e3..109a212f1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -219,6 +219,7 @@ set(TESTS_SRC move.test.c piracy.test.c prefix.test.c + renumber.test.c skill.test.c spells.test.c spy.test.c diff --git a/src/renumber.test.c b/src/renumber.test.c new file mode 100644 index 000000000..5b8dc5e2c --- /dev/null +++ b/src/renumber.test.c @@ -0,0 +1,53 @@ +#include "renumber.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +static void test_renumber_faction(CuTest *tc) { + unit *u; + int uno, no; + const struct locale *lang; + + test_setup_ex(tc); + u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0)); + no = u->faction->no; + uno = (no > 1) ? no - 1 : no + 1; + lang = u->faction->locale; + u->thisorder = create_order(K_NUMBER, lang, "%s %s", LOC(lang, parameters[P_FACTION]), itoa36(uno)); + renumber_cmd(u, u->thisorder); + renumber_factions(); + CuAssertIntEquals(tc, uno, u->faction->no); + test_cleanup(); +} + +static void test_renumber_unit(CuTest *tc) { + unit *u; + int uno, no; + const struct locale *lang; + + test_setup_ex(tc); + u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0)); + no = u->no; + uno = (no > 1) ? no - 1 : no + 1; + lang = u->faction->locale; + u->thisorder = create_order(K_NUMBER, lang, "%s %s", LOC(lang, parameters[P_UNIT]), itoa36(uno)); + renumber_cmd(u, u->thisorder); + CuAssertIntEquals(tc, uno, u->no); + CuAssertIntEquals(tc, -no, ualias(u)); // TODO: why is ualias negative? + test_cleanup(); +} + +CuSuite *get_renumber_suite(void) +{ + CuSuite *suite = CuSuiteNew(); + SUITE_ADD_TEST(suite, test_renumber_unit); + SUITE_ADD_TEST(suite, test_renumber_faction); + return suite; +} diff --git a/src/test_eressea.c b/src/test_eressea.c index 39ec90be6..330afd5bc 100644 --- a/src/test_eressea.c +++ b/src/test_eressea.c @@ -114,7 +114,6 @@ int RunAllTests(int argc, char *argv[]) ADD_SUITE(guard); ADD_SUITE(report); ADD_SUITE(creport); - ADD_SUITE(prefix); ADD_SUITE(summary); ADD_SUITE(names); ADD_SUITE(battle); @@ -130,6 +129,8 @@ int RunAllTests(int argc, char *argv[]) ADD_SUITE(monsters); ADD_SUITE(move); ADD_SUITE(piracy); + ADD_SUITE(prefix); + ADD_SUITE(renumber); ADD_SUITE(key); ADD_SUITE(stealth); ADD_SUITE(otherfaction);