forked from github/server
backfill missing tests for ally_cmd
This commit is contained in:
parent
91efc30afd
commit
8efc874952
|
@ -919,6 +919,10 @@ static const char * parameter_key(int i)
|
||||||
return parameters[i];
|
return parameters[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void init_parameters(struct locale *lang) {
|
||||||
|
init_translations(lang, UT_PARAMS, parameter_key, MAXPARAMS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void init_terrains_translation(const struct locale *lang) {
|
void init_terrains_translation(const struct locale *lang) {
|
||||||
void **tokens;
|
void **tokens;
|
||||||
|
@ -1009,7 +1013,7 @@ void init_locale(struct locale *lang)
|
||||||
if (name) addtoken(tokens, name, var);
|
if (name) addtoken(tokens, name, var);
|
||||||
}
|
}
|
||||||
|
|
||||||
init_translations(lang, UT_PARAMS, parameter_key, MAXPARAMS);
|
init_parameters(lang);
|
||||||
|
|
||||||
init_options_translation(lang);
|
init_options_translation(lang);
|
||||||
init_terrains_translation(lang);
|
init_terrains_translation(lang);
|
||||||
|
|
|
@ -291,6 +291,7 @@ extern "C" {
|
||||||
void set_default_order(int kwd);
|
void set_default_order(int kwd);
|
||||||
|
|
||||||
int entertainmoney(const struct region *r);
|
int entertainmoney(const struct region *r);
|
||||||
|
void init_parameters(struct locale *lang);
|
||||||
|
|
||||||
void free_gamedata(void);
|
void free_gamedata(void);
|
||||||
|
|
||||||
|
|
|
@ -285,8 +285,9 @@ extern unsigned int new_hashstring(const char *s);
|
||||||
|
|
||||||
void free_messagelist(message_list * msgs)
|
void free_messagelist(message_list * msgs)
|
||||||
{
|
{
|
||||||
struct mlist **mlistptr = &msgs->begin;
|
struct mlist **mlistptr;
|
||||||
while (*mlistptr) {
|
assert(msgs && msgs->begin);
|
||||||
|
for (mlistptr = &msgs->begin; *mlistptr;) {
|
||||||
struct mlist *ml = *mlistptr;
|
struct mlist *ml = *mlistptr;
|
||||||
*mlistptr = ml->next;
|
*mlistptr = ml->next;
|
||||||
msg_release(ml->msg);
|
msg_release(ml->msg);
|
||||||
|
|
|
@ -1347,10 +1347,12 @@ int ally_cmd(unit * u, struct order *ord)
|
||||||
|
|
||||||
s = gettoken(token, sizeof(token));
|
s = gettoken(token, sizeof(token));
|
||||||
|
|
||||||
if (s && !s[0])
|
if (!s || !s[0]) {
|
||||||
keyword = P_ANY;
|
keyword = P_ANY;
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
keyword = findparam(s, u->faction->locale);
|
keyword = findparam(s, u->faction->locale);
|
||||||
|
}
|
||||||
|
|
||||||
sfp = &u->faction->allies;
|
sfp = &u->faction->allies;
|
||||||
if (fval(u, UFL_GROUP)) {
|
if (fval(u, UFL_GROUP)) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include "laws.h"
|
#include "laws.h"
|
||||||
#include "battle.h"
|
#include "battle.h"
|
||||||
|
#include "monster.h"
|
||||||
|
|
||||||
#include <kernel/ally.h>
|
#include <kernel/ally.h>
|
||||||
#include <kernel/config.h>
|
#include <kernel/config.h>
|
||||||
|
@ -913,9 +914,71 @@ static void test_long_order_hungry(CuTest *tc) {
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_ally_cmd_errors(CuTest *tc) {
|
||||||
|
unit *u;
|
||||||
|
int fid;
|
||||||
|
order *ord;
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0));
|
||||||
|
u->faction->locale = get_or_create_locale("de");
|
||||||
|
fid = u->faction->no + 1;
|
||||||
|
CuAssertPtrEquals(tc, 0, findfaction(fid));
|
||||||
|
|
||||||
|
ord = create_order(K_ALLY, u->faction->locale, itoa36(fid));
|
||||||
|
ally_cmd(u, ord);
|
||||||
|
CuAssertStrEquals(tc, "error66", test_get_messagetype(u->faction->msgs->begin->msg));
|
||||||
|
free_order(ord);
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_ally_cmd(CuTest *tc) {
|
||||||
|
unit *u;
|
||||||
|
faction * f;
|
||||||
|
order *ord;
|
||||||
|
struct locale *lang;
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0));
|
||||||
|
f = test_create_faction(0);
|
||||||
|
u->faction->locale = lang = get_or_create_locale("de");
|
||||||
|
locale_setstring(lang, parameters[P_NOT], "NICHT");
|
||||||
|
locale_setstring(lang, parameters[P_GUARD], "BEWACHE");
|
||||||
|
init_parameters(lang);
|
||||||
|
|
||||||
|
ord = create_order(K_ALLY, lang, "%s", itoa36(f->no));
|
||||||
|
ally_cmd(u, ord);
|
||||||
|
CuAssertPtrEquals(tc, 0, u->faction->msgs);
|
||||||
|
CuAssertIntEquals(tc, HELP_ALL, alliedfaction(0, u->faction, f, HELP_ALL));
|
||||||
|
free_order(ord);
|
||||||
|
|
||||||
|
ord = create_order(K_ALLY, lang, "%s NICHT", itoa36(f->no));
|
||||||
|
ally_cmd(u, ord);
|
||||||
|
CuAssertPtrEquals(tc, 0, u->faction->msgs);
|
||||||
|
CuAssertIntEquals(tc, 0, alliedfaction(0, u->faction, f, HELP_ALL));
|
||||||
|
free_order(ord);
|
||||||
|
|
||||||
|
ord = create_order(K_ALLY, lang, "%s BEWACHE", itoa36(f->no));
|
||||||
|
ally_cmd(u, ord);
|
||||||
|
CuAssertPtrEquals(tc, 0, u->faction->msgs);
|
||||||
|
CuAssertIntEquals(tc, HELP_GUARD, alliedfaction(0, u->faction, f, HELP_ALL));
|
||||||
|
free_order(ord);
|
||||||
|
|
||||||
|
ord = create_order(K_ALLY, lang, "%s BEWACHE NICHT", itoa36(f->no));
|
||||||
|
ally_cmd(u, ord);
|
||||||
|
CuAssertPtrEquals(tc, 0, u->faction->msgs);
|
||||||
|
CuAssertIntEquals(tc, 0, alliedfaction(0, u->faction, f, HELP_ALL));
|
||||||
|
free_order(ord);
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
CuSuite *get_laws_suite(void)
|
CuSuite *get_laws_suite(void)
|
||||||
{
|
{
|
||||||
CuSuite *suite = CuSuiteNew();
|
CuSuite *suite = CuSuiteNew();
|
||||||
|
SUITE_ADD_TEST(suite, test_ally_cmd);
|
||||||
|
SUITE_ADD_TEST(suite, test_ally_cmd_errors);
|
||||||
SUITE_ADD_TEST(suite, test_long_order_normal);
|
SUITE_ADD_TEST(suite, test_long_order_normal);
|
||||||
SUITE_ADD_TEST(suite, test_long_order_none);
|
SUITE_ADD_TEST(suite, test_long_order_none);
|
||||||
SUITE_ADD_TEST(suite, test_long_order_cast);
|
SUITE_ADD_TEST(suite, test_long_order_cast);
|
||||||
|
|
Loading…
Reference in New Issue