Testing do_remove

Mocking the send_to_char function to check messages to the user. Still doesn't work for act() though.
Requires libmocka-dev and   libunwind-setjmp0-dev
This commit is contained in:
welcor
2024-05-19 01:45:42 +02:00
parent 217eac8cb3
commit 7d3acb0e3d
4 changed files with 83 additions and 5 deletions

View File

@@ -2,7 +2,31 @@
UNIT_TEST(test_do_remove) {
char_data *ch = create_char();
CREATE(ch->player_specials, struct player_special_data, 1);
new_mobile_data(ch);
ch->char_specials.position = POS_STANDING;
CREATE(ch->desc, struct descriptor_data, 1);
char_to_room(ch, 0);
do_remove(ch, "2.ring", 0, 0);
munit_assert_string_equal(get_last_messages(), "You don't seem to be using a ring.\r\n");
obj_data *ring1 = create_obj();
ring1->name = "ring";
ring1->short_description = "ring1";
obj_data *ring2 = create_obj();
ring2->name = "ring";
ring2->short_description = "ring2";
equip_char(ch, ring1, WEAR_FINGER_R);
equip_char(ch, ring2, WEAR_FINGER_L);
do_remove(ch, "2.ring", 0, 0);
munit_assert_ptr_equal(ch->carrying, ring2);
return MUNIT_OK;
}
@@ -12,4 +36,5 @@ MunitTest act_item_c_tests[] = {
// end of array marker
{ NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }
};
};