oh, I get it. reduceproduction signals that this volcano recently exploded.

added a test for outbreak and message
This commit is contained in:
Enno Rehling 2016-08-23 07:53:29 +02:00
parent 68f619cb90
commit c3119e4c4a
2 changed files with 22 additions and 2 deletions

View File

@ -269,7 +269,7 @@ void volcano_update(void)
rsetterrain(r, T_VOLCANO); rsetterrain(r, T_VOLCANO);
} }
else { else {
// TODO: this code path is inactive. are we only keeping it for old data? fix data instead. // TODO: is this code path inactive? are we only keeping it for old data? fix data instead.
if (rng_int() % 100 < 12) { if (rng_int() % 100 < 12) {
ADDMSG(&r->msgs, msg_message("volcanostopsmoke", "region", r)); ADDMSG(&r->msgs, msg_message("volcanostopsmoke", "region", r));
rsetterrain(r, T_VOLCANO); rsetterrain(r, T_VOLCANO);

View File

@ -15,14 +15,33 @@ static void test_volcano_update(CuTest *tc) {
region *r; region *r;
const struct terrain_type *t_volcano, *t_active; const struct terrain_type *t_volcano, *t_active;
test_cleanup();
t_volcano = test_create_terrain("volcano", LAND_REGION); t_volcano = test_create_terrain("volcano", LAND_REGION);
t_active = test_create_terrain("activevolcano", LAND_REGION); t_active = test_create_terrain("activevolcano", LAND_REGION);
test_cleanup();
r = test_create_region(0, 0, t_active); r = test_create_region(0, 0, t_active);
a_add(&r->attribs, make_reduceproduction(25, 10)); a_add(&r->attribs, make_reduceproduction(25, 10));
volcano_update(); volcano_update();
CuAssertPtrNotNull(tc, test_find_messagetype(r->msgs, "volcanostopsmoke")); CuAssertPtrNotNull(tc, test_find_messagetype(r->msgs, "volcanostopsmoke"));
CuAssertPtrEquals(tc, (void *)t_volcano, (void *)r->terrain); CuAssertPtrEquals(tc, (void *)t_volcano, (void *)r->terrain);
test_cleanup();
}
static void test_volcano_outbreak(CuTest *tc) {
region *r;
const struct terrain_type *t_volcano, *t_active;
test_cleanup();
t_volcano = test_create_terrain("volcano", LAND_REGION);
t_active = test_create_terrain("activevolcano", LAND_REGION);
r = test_create_region(0, 0, t_active);
volcano_outbreak(r);
CuAssertPtrEquals(tc, (void *)t_volcano, (void *)r->terrain);
CuAssertPtrNotNull(tc, test_find_messagetype(r->msgs, "volcanooutbreak"));
CuAssertPtrNotNull(tc, a_find(r->attribs, &at_reduceproduction));
test_cleanup(); test_cleanup();
} }
@ -30,5 +49,6 @@ CuSuite *get_volcano_suite(void)
{ {
CuSuite *suite = CuSuiteNew(); CuSuite *suite = CuSuiteNew();
SUITE_ADD_TEST(suite, test_volcano_update); SUITE_ADD_TEST(suite, test_volcano_update);
SUITE_ADD_TEST(suite, test_volcano_outbreak);
return suite; return suite;
} }