Files
Bubberstation/code/modules/unit_tests/baseturfs.dm
SkyratBot 558c466b81 [MIRROR] Splits placeontop proc [MDB IGNORE] (#25103)
* Splits placeontop proc (#79702)

## About The Pull Request
I find the proc hard to read honestly. There's no reason we can't split
this into two functions - the secondary functionality is used only once,
in reader.dmm.
## Why It's Good For The Game
Code improvement
Glorious snake case
## Changelog
N/A nothing player facing

---------

Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>

* Splits placeontop proc

* Update brass_spreader.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-19 10:28:18 -05:00

77 lines
3.6 KiB
Plaintext

#define EXPECTED_FLOOR_TYPE /turf/open/floor/iron
// Do this instead of just ChangeTurf to guarantee that baseturfs is completely default on-init behavior
#define RESET_TO_EXPECTED(turf) \
turf.ChangeTurf(EXPECTED_FLOOR_TYPE);\
turf.assemble_baseturfs(initial(turf.baseturfs))
/// Validates that unmodified baseturfs tear down properly
/datum/unit_test/baseturfs_unmodified_scrape
/datum/unit_test/baseturfs_unmodified_scrape/Run()
// What this is specifically doesn't matter, just as long as the test is built for it
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, EXPECTED_FLOOR_TYPE, "run_loc_floor_bottom_left should be an iron floor")
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/floor/plating, "Iron floors should scrape away to plating")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/space, "Plating should scrape away to space")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/space, "Space should scrape away to space")
/datum/unit_test/baseturfs_unmodified_scrape/Destroy()
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
return ..()
/// Validates that specially placed baseturfs tear down properly
/datum/unit_test/baseturfs_placed_on_top
/datum/unit_test/baseturfs_placed_on_top/Run()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, EXPECTED_FLOOR_TYPE, "run_loc_floor_bottom_left should be an iron floor")
// Do this instead of just ChangeTurf to guarantee that baseturfs is completely default on-init behavior
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
run_loc_floor_bottom_left.place_on_top(/turf/closed/wall/rock)
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/closed/wall/rock, "Rock wall should've been placed on top")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, EXPECTED_FLOOR_TYPE, "Rock wall should've been scraped off, back into the expected type")
/datum/unit_test/baseturfs_placed_on_top/Destroy()
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
return ..()
/// Validates that specially placed baseturfs BELOW tear down properly
/datum/unit_test/baseturfs_placed_on_bottom
/datum/unit_test/baseturfs_placed_on_bottom/Run()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, EXPECTED_FLOOR_TYPE, "run_loc_floor_bottom_left should be an iron floor")
// Do this instead of just ChangeTurf to guarantee that baseturfs is completely default on-init behavior
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
run_loc_floor_bottom_left.place_on_bottom(/turf/closed/wall/rock)
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, EXPECTED_FLOOR_TYPE, "PlaceOnBottom shouldn't have changed turf")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/floor/plating, "Iron floors should scrape away to plating")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/space, "Plating should've scraped off to space")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/closed/wall/rock, "Space should've scraped down to a rock wall")
run_loc_floor_bottom_left.ScrapeAway()
TEST_ASSERT_EQUAL(run_loc_floor_bottom_left.type, /turf/open/floor/plating, "Rock wall should've scraped down back to plating (because it's a wall)")
/datum/unit_test/baseturfs_placed_on_bottom/Destroy()
RESET_TO_EXPECTED(run_loc_floor_bottom_left)
return ..()
#undef RESET_TO_EXPECTED
#undef EXPECTED_FLOOR_TYPE