From 928b9966d00af9cc9182e2b42f6b105c20957b14 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Tue, 4 Aug 2015 23:04:00 +0200 Subject: [PATCH] fix broken test (select DESTROY over MOVE), start writing unit tests for update_long_order --- src/laws.c | 16 ++++++++-------- src/laws.test.c | 13 +++++++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/laws.c b/src/laws.c index 40ffac896..b9df102cd 100755 --- a/src/laws.c +++ b/src/laws.c @@ -3483,15 +3483,15 @@ void update_long_order(unit * u) } break; default: -#ifdef TODO // TODO: decide https://bugs.eressea.de/view.php?id=2080#c6011 - if (kwd < thiskwd) { - /* swap thisorder for the new one */ - order *tmp = ord; - ord = u->thisorder; - u->thisorder = tmp; + // TODO: decide https://bugs.eressea.de/view.php?id=2080#c6011 + if (kwd > thiskwd) { + // swap out thisorder for the new one + cmistake(u, u->thisorder, 52, MSG_EVENT); + set_order(&u->thisorder, copy_order(ord)); + } + else { + cmistake(u, ord, 52, MSG_EVENT); } -#endif - cmistake(u, ord, 52, MSG_EVENT); break; } } diff --git a/src/laws.test.c b/src/laws.test.c index b5429e1aa..b6b13d37c 100644 --- a/src/laws.test.c +++ b/src/laws.test.c @@ -768,9 +768,22 @@ static void test_luck_message(CuTest *tc) { test_cleanup(); } +static void test_update_long_order(CuTest *tc) { + // TODO: write more tests + unit *u; + test_cleanup(); + u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0)); + update_long_order(u); + CuAssertPtrEquals(tc, 0, u->thisorder); + CuAssertPtrEquals(tc, 0, u->orders); + CuAssertPtrEquals(tc, 0, u->old_orders); + test_cleanup(); +} + CuSuite *get_laws_suite(void) { CuSuite *suite = CuSuiteNew(); + SUITE_ADD_TEST(suite, test_update_long_order); SUITE_ADD_TEST(suite, test_new_building_can_be_renamed); SUITE_ADD_TEST(suite, test_rename_building); SUITE_ADD_TEST(suite, test_rename_building_twice);