diff --git a/src/items/xerewards.test.c b/src/items/xerewards.test.c index 5ce7716f3..52a4d0ed0 100644 --- a/src/items/xerewards.test.c +++ b/src/items/xerewards.test.c @@ -19,13 +19,43 @@ static void test_manacrystal(CuTest *tc) { static void test_skillpotion(CuTest *tc) { unit *u; const struct item_type *itype; + skill* pSkill = NULL; + int initialWeeks_Entertainment = 0; + int initialWeeks_Stamina = 0; + int initialWeeks_Magic = 0; test_cleanup(); test_create_world(); u = test_create_unit(test_create_faction(NULL), findregion(0, 0)); itype = test_create_itemtype("skillpotion"); change_resource(u, itype->rtype, 2); + + learn_skill(u, SK_ENTERTAINMENT, 1.0); + pSkill = unit_skill(u, SK_ENTERTAINMENT); + sk_set(pSkill, 5); + initialWeeks_Entertainment = pSkill->weeks; + + learn_skill(u, SK_STAMINA, 1.0); + pSkill = unit_skill(u, SK_STAMINA); + sk_set(pSkill, 5); + initialWeeks_Stamina = pSkill->weeks; + + learn_skill(u, SK_MAGIC, 1.0); + pSkill = unit_skill(u, SK_MAGIC); + sk_set(pSkill, 5); + initialWeeks_Magic = pSkill->weeks; + CuAssertIntEquals(tc, 1, use_skillpotion(u, itype, 1, NULL)); + + pSkill = unit_skill(u, SK_ENTERTAINMENT); + CuAssertIntEquals(tc, initialWeeks_Entertainment - 3, pSkill->weeks); + + pSkill = unit_skill(u, SK_STAMINA); + CuAssertIntEquals(tc, initialWeeks_Stamina - 3, pSkill->weeks); + + pSkill = unit_skill(u, SK_MAGIC); + CuAssertIntEquals(tc, initialWeeks_Magic - 3, pSkill->weeks); + test_cleanup(); }