From c3119e4c4a8f2020f0ac667701549a7fad9f85b5 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Tue, 23 Aug 2016 07:53:29 +0200 Subject: [PATCH] oh, I get it. reduceproduction signals that this volcano recently exploded. added a test for outbreak and message --- src/volcano.c | 2 +- src/volcano.test.c | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/volcano.c b/src/volcano.c index 9bcf62ff4..52b0bfeaa 100644 --- a/src/volcano.c +++ b/src/volcano.c @@ -269,7 +269,7 @@ void volcano_update(void) rsetterrain(r, T_VOLCANO); } 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) { ADDMSG(&r->msgs, msg_message("volcanostopsmoke", "region", r)); rsetterrain(r, T_VOLCANO); diff --git a/src/volcano.test.c b/src/volcano.test.c index 05b058e2d..61c4bb764 100644 --- a/src/volcano.test.c +++ b/src/volcano.test.c @@ -15,14 +15,33 @@ static void test_volcano_update(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); - test_cleanup(); r = test_create_region(0, 0, t_active); a_add(&r->attribs, make_reduceproduction(25, 10)); + volcano_update(); CuAssertPtrNotNull(tc, test_find_messagetype(r->msgs, "volcanostopsmoke")); 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(); } @@ -30,5 +49,6 @@ CuSuite *get_volcano_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_volcano_update); + SUITE_ADD_TEST(suite, test_volcano_outbreak); return suite; }