From b3c31856aaaaf74c4463cee7554912cca54ec6c1 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 18 Sep 2016 11:34:54 +0200 Subject: [PATCH] add (failing) test for recruiting into existing units. --- src/economy.c | 2 +- src/economy.h | 2 +- src/economy.test.c | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/economy.c b/src/economy.c index 8d4939d4a..1eda7bf61 100644 --- a/src/economy.c +++ b/src/economy.c @@ -244,7 +244,7 @@ static recruitment *select_recruitment(request ** rop, return recruits; } -static void add_recruits(unit * u, int number, int wanted) +void add_recruits(unit * u, int number, int wanted) { region *r = u->region; assert(number <= wanted); diff --git a/src/economy.h b/src/economy.h index b6c8002c9..4bce314a9 100644 --- a/src/economy.h +++ b/src/economy.h @@ -61,7 +61,7 @@ extern "C" { void give_control(struct unit * u, struct unit * u2); void tax_cmd(struct unit * u, struct order *ord, struct request ** taxorders); void expandtax(struct region * r, struct request * taxorders); - + void add_recruits(struct unit * u, int number, int wanted); struct message * check_steal(const struct unit * u, struct order *ord); #ifdef __cplusplus diff --git a/src/economy.test.c b/src/economy.test.c index ce09aae43..9c4311c70 100644 --- a/src/economy.test.c +++ b/src/economy.test.c @@ -290,6 +290,22 @@ static void test_maintain_buildings(CuTest *tc) { test_cleanup(); } +static void test_recruit(CuTest *tc) { + unit *u; + faction *f; + + test_setup(); + f = test_create_faction(0); + u = test_create_unit(f, test_create_region(0, 0, 0)); + CuAssertIntEquals(tc, 1, u->number); + add_recruits(u, 1, 1); + CuAssertIntEquals(tc, 2, u->number); + CuAssertPtrEquals(tc, u, f->units); + CuAssertPtrEquals(tc, NULL, u->nextF); + CuAssertPtrEquals(tc, NULL, u->prevF); + test_cleanup(); +} + CuSuite *get_economy_suite(void) { CuSuite *suite = CuSuiteNew(); @@ -302,5 +318,6 @@ CuSuite *get_economy_suite(void) SUITE_ADD_TEST(suite, test_heroes_dont_recruit); SUITE_ADD_TEST(suite, test_tax_cmd); SUITE_ADD_TEST(suite, test_maintain_buildings); + SUITE_ADD_TEST(suite, test_recruit); return suite; }