Files
Bubberstation/code/modules/unit_tests/reagent_transfer.dm
SkyratBot 8bf2238e3f [MIRROR] Adds unit test for reagent transfer and fixes infinite reagent transfer bug. [MDB IGNORE] (#15873)
* Adds unit test for reagent transfer and fixes infinite reagent transfer bug.

* Update holder.dm

* Fixes the conflict and updates the file properly to match upstream

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-08-27 13:31:42 -04:00

27 lines
2.0 KiB
Plaintext

/// Tests transferring reagents between two reagents datums.
/datum/unit_test/reagent_transfer
/datum/unit_test/reagent_transfer/Run()
var/datum/reagents/source_reagents = allocate(/datum/reagents, 100)
var/datum/reagents/target_reagents = allocate(/datum/reagents, 100)
// Quick test to make sure reagents add properly.
source_reagents.add_reagent(/datum/reagent/water, 10)
TEST_ASSERT_EQUAL(length(source_reagents.reagent_list), 1, "Source reagents has [length(source_reagents.reagent_list)] unique reagents (expected 1).")
TEST_ASSERT_EQUAL(source_reagents.total_volume, 10, "Source reagents has incorrect total_volume [source_reagents.total_volume] (expected 10).")
// Test to make sure the water reagent was added correctly.
var/datum/reagent/water/water_reagent = source_reagents.reagent_list[1]
TEST_ASSERT(istype(water_reagent), "Incorrect reagent type detected source reagents: [water_reagent.type] (expected /datum/reagent/water).")
TEST_ASSERT_EQUAL(water_reagent.volume, 10, "Source reagents has [water_reagent.volume] reagent volume (expected 10).")
// Test to make sure reagents transfer properly.
source_reagents.trans_to(target_reagents, 10)
TEST_ASSERT_EQUAL(length(source_reagents.reagent_list), 0, "Source reagents has [length(source_reagents.reagent_list)] unique reagents after transfer (expected 0, possible duplication?)")
TEST_ASSERT_EQUAL(length(target_reagents.reagent_list), 1, "Target reagents has [length(target_reagents.reagent_list)] unique reagents after transfer (expected 1).")
TEST_ASSERT_EQUAL(target_reagents.total_volume, 10, "Target reagents has incorrect total_volume [source_reagents.total_volume] (expected 10).")
water_reagent = target_reagents.reagent_list[1]
TEST_ASSERT(istype(water_reagent), "Incorrect reagent type detected in target reagents after transfer: [water_reagent.type] (should be /datum/reagent/water).")
TEST_ASSERT_EQUAL(water_reagent.volume, 10, "Target reagents has [water_reagent.volume] reagent volume (expected 10)")