mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 04:57:57 +01:00
[MIRROR] Unit tests for serving trays (#1199)
* Unit tests for serving trays (#54224) * Unit tests for serving trays Co-authored-by: NightRed <nightred@gmail.com>
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
#include "reagent_recipe_collisions.dm"
|
||||
#include "resist.dm"
|
||||
#include "say.dm"
|
||||
#include "serving_tray.dm"
|
||||
#include "siunit.dm"
|
||||
#include "spawn_humans.dm"
|
||||
#include "species_whitelists.dm"
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* Check that standard food items fit on the serving tray
|
||||
*/
|
||||
/datum/unit_test/servingtray/Run()
|
||||
var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human)
|
||||
var/obj/structure/table/the_table = allocate(/obj/structure/table)
|
||||
var/obj/item/storage/bag/tray/test_tray = allocate(/obj/item/storage/bag/tray)
|
||||
var/obj/item/reagent_containers/food/banana = allocate(/obj/item/reagent_containers/food/snacks/grown/banana)
|
||||
var/obj/item/food/the_bread = allocate(/obj/item/food/breadslice)
|
||||
var/obj/item/reagent_containers/food/sugarcookie = allocate(/obj/item/reagent_containers/food/snacks/sugarcookie)
|
||||
var/obj/item/clothing/under/jumpsuit = allocate(/obj/item/clothing/under/color/black)
|
||||
|
||||
TEST_ASSERT_EQUAL((the_bread in test_tray.contents), FALSE, "The bread is on the serving tray at test start")
|
||||
|
||||
// set the tray to single item mode the dirty way
|
||||
var/datum/component/storage/tray_storage = test_tray.GetComponent(/datum/component/storage)
|
||||
tray_storage.collection_mode = COLLECT_ONE
|
||||
|
||||
test_tray.pre_attack(the_bread, human)
|
||||
|
||||
TEST_ASSERT_EQUAL((the_bread in test_tray.contents), TRUE, "The bread did not get picked up by the serving tray")
|
||||
|
||||
test_tray.pre_attack(banana, human)
|
||||
|
||||
TEST_ASSERT_EQUAL((banana in test_tray.contents), TRUE, "The banana did not get picked up by the serving tray")
|
||||
|
||||
the_table.attackby(test_tray, human)
|
||||
|
||||
TEST_ASSERT_EQUAL(test_tray.contents.len, 0, "The serving tray did not drop all items on hitting the table")
|
||||
|
||||
test_tray.pre_attack(sugarcookie, human)
|
||||
|
||||
TEST_ASSERT_EQUAL((sugarcookie in test_tray.contents), TRUE, "The sugarcookie did not get picked up by the serving tray")
|
||||
|
||||
human.equip_to_slot(jumpsuit, ITEM_SLOT_ICLOTHING)
|
||||
TEST_ASSERT(human.get_item_by_slot(ITEM_SLOT_ICLOTHING), "Human does not have jumpsuit on")
|
||||
|
||||
human.equip_to_slot(test_tray, ITEM_SLOT_LPOCKET)
|
||||
TEST_ASSERT(human.get_item_by_slot(ITEM_SLOT_LPOCKET), "Serving tray failed to fit in the Left Pocket")
|
||||
|
||||
human.equip_to_slot(test_tray, ITEM_SLOT_RPOCKET)
|
||||
TEST_ASSERT(human.get_item_by_slot(ITEM_SLOT_RPOCKET), "Serving tray failed to fit in the Right Pocket")
|
||||
|
||||
test_tray.attack(human, human)
|
||||
|
||||
TEST_ASSERT_EQUAL(test_tray.contents.len, 0, "The serving tray did not drop all items on hitting a human")
|
||||
|
||||
Reference in New Issue
Block a user