forked from github/server
Simple test for rules.give (there are many more, can_give deserves a test to itself).
The more tests I write, the more I hate the infrastructure for them.
This commit is contained in:
parent
b9b627a171
commit
b21cb8f5c7
|
@ -703,7 +703,6 @@ message *check_give(const unit *u, const unit *u2, order * ord) {
|
||||||
if (!can_give(u, u2, NULL, GIVE_ALLITEMS)) {
|
if (!can_give(u, u2, NULL, GIVE_ALLITEMS)) {
|
||||||
return msg_feedback(u, ord, "feedback_give_forbidden", "");
|
return msg_feedback(u, ord, "feedback_give_forbidden", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
|
#include <kernel/config.h>
|
||||||
#include <kernel/types.h>
|
#include <kernel/types.h>
|
||||||
#include "economy.h"
|
#include "economy.h"
|
||||||
|
|
||||||
|
@ -117,27 +118,47 @@ static void test_steal_ocean(CuTest * tc) {
|
||||||
struct give {
|
struct give {
|
||||||
struct unit *src, *dst;
|
struct unit *src, *dst;
|
||||||
struct region *r;
|
struct region *r;
|
||||||
struct faction *f;
|
struct faction *f1, *f2;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void setup_give(struct give *env) {
|
static void setup_give(struct give *env) {
|
||||||
terrain_type *ter = test_create_terrain("plain", LAND_REGION);
|
terrain_type *ter = test_create_terrain("plain", LAND_REGION);
|
||||||
struct race * rc = test_create_race("human");
|
|
||||||
env->r = test_create_region(0, 0, ter);
|
env->r = test_create_region(0, 0, ter);
|
||||||
env->f = test_create_faction(0);
|
env->src = test_create_unit(env->f1, env->r);
|
||||||
env->src = test_create_unit(env->f, env->r);
|
env->dst = test_create_unit(env->f2, env->r);
|
||||||
env->dst = test_create_unit(env->f, env->r);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_give_okay(CuTest * tc) {
|
static void test_give_okay(CuTest * tc) {
|
||||||
struct give env;
|
struct give env;
|
||||||
|
struct race * rc;
|
||||||
|
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
|
rc = test_create_race("human");
|
||||||
|
env.f2 = env.f1 = test_create_faction(rc);
|
||||||
setup_give(&env);
|
setup_give(&env);
|
||||||
|
|
||||||
|
set_param(&global.parameters, "rules.give", "0");
|
||||||
CuAssertPtrEquals(tc, 0, check_give(env.src, env.dst, 0));
|
CuAssertPtrEquals(tc, 0, check_give(env.src, env.dst, 0));
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_give_denied_by_rules(CuTest * tc) {
|
||||||
|
struct give env;
|
||||||
|
struct race * rc;
|
||||||
|
struct message *msg;
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
rc = test_create_race("human");
|
||||||
|
env.f1 = test_create_faction(rc);
|
||||||
|
env.f2 = test_create_faction(rc);
|
||||||
|
setup_give(&env);
|
||||||
|
|
||||||
|
set_param(&global.parameters, "rules.give", "0");
|
||||||
|
CuAssertPtrNotNull(tc, msg=check_give(env.src, env.dst, 0));
|
||||||
|
msg_release(msg);
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
CuSuite *get_economy_suite(void)
|
CuSuite *get_economy_suite(void)
|
||||||
{
|
{
|
||||||
CuSuite *suite = CuSuiteNew();
|
CuSuite *suite = CuSuiteNew();
|
||||||
|
@ -147,5 +168,6 @@ CuSuite *get_economy_suite(void)
|
||||||
SUITE_ADD_TEST(suite, test_steal_ocean);
|
SUITE_ADD_TEST(suite, test_steal_ocean);
|
||||||
SUITE_ADD_TEST(suite, test_steal_nosteal);
|
SUITE_ADD_TEST(suite, test_steal_nosteal);
|
||||||
SUITE_ADD_TEST(suite, test_give_okay);
|
SUITE_ADD_TEST(suite, test_give_okay);
|
||||||
|
SUITE_ADD_TEST(suite, test_give_denied_by_rules);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2748,6 +2748,7 @@ void kernel_init(void)
|
||||||
register_reports();
|
register_reports();
|
||||||
if (!mt_find("missing_message")) {
|
if (!mt_find("missing_message")) {
|
||||||
mt_register(mt_new_va("missing_message", "name:string", 0));
|
mt_register(mt_new_va("missing_message", "name:string", 0));
|
||||||
|
mt_register(mt_new_va("missing_feedback", "unit:unit", "region:region", "command:order", "name:string", 0));
|
||||||
}
|
}
|
||||||
attrib_init();
|
attrib_init();
|
||||||
translation_init();
|
translation_init();
|
||||||
|
|
|
@ -189,8 +189,7 @@ void locale_setstring(locale * lang, const char *key, const char *value)
|
||||||
|
|
||||||
const char *locale_name(const locale * lang)
|
const char *locale_name(const locale * lang)
|
||||||
{
|
{
|
||||||
assert(lang);
|
return lang ? lang->name : "(null)";
|
||||||
return lang->name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char *mkname_buf(const char *space, const char *name, char *buffer)
|
char *mkname_buf(const char *space, const char *name, char *buffer)
|
||||||
|
|
Loading…
Reference in New Issue