diff options
| author | radiohotline <radoihotline@disroot.rg> | 2026-08-25 16:33:56 +0300 |
|---|---|---|
| committer | radiohotline <radoihotline@disroot.rg> | 2026-08-25 16:33:56 +0300 |
| commit | a89e744ed0e8c759caf041a580112365bbfe4303 (patch) | |
| tree | dd61e320904176995727e86a857d00c90d4933ba /addons/escoria-core/testing/esc_object_manager_test.gd | |
| parent | 6d53d8cac78250dc888aa49d5f9d4175c6652feb (diff) | |
Diffstat (limited to 'addons/escoria-core/testing/esc_object_manager_test.gd')
| -rw-r--r-- | addons/escoria-core/testing/esc_object_manager_test.gd | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/addons/escoria-core/testing/esc_object_manager_test.gd b/addons/escoria-core/testing/esc_object_manager_test.gd new file mode 100644 index 0000000..52f79b3 --- /dev/null +++ b/addons/escoria-core/testing/esc_object_manager_test.gd @@ -0,0 +1,79 @@ +# GdUnit generated TestSuite +class_name ESCObjectManagerTest +extends GdUnitTestSuite + + +func test_reset_game_state_clears_persisted_room_object_state() -> void: + var object_manager := ESCObjectManager.new() + var room := ESCRoom.new() + room.global_id = "test_room" + object_manager.set_current_room(room) + + var first_item := ESCItem.new() + first_item.global_id = "test_item" + var first_object := ESCObject.new(first_item.global_id, first_item) + object_manager.register_object(first_object, room, false, false) + first_object.set_state("opened") + + var room_key := ESCRoomObjectsKey.new() + room_key.room_global_id = room.global_id + room_key.room_instance_id = room.get_instance_id() + object_manager.unregister_object(first_object, room_key) + assert_bool(object_manager.has(first_item.global_id, room)).is_true() + + object_manager.reset_game_state() + assert_bool(object_manager.has(first_item.global_id, room)).is_false() + + var second_item := ESCItem.new() + second_item.global_id = "test_item" + var second_object := ESCObject.new(second_item.global_id, second_item) + object_manager.set_current_room(room) + object_manager.register_object(second_object, room, false, false) + + assert_str(object_manager.get_object(second_item.global_id, room).state).is_equal( + ESCObject.STATE_DEFAULT + ) + + first_item.free() + second_item.free() + room.free() + + +func test_reset_game_state_preserves_reserved_objects() -> void: + var object_manager := ESCObjectManager.new() + var music_node := Node.new() + + object_manager.register_object( + ESCObject.new(ESCObjectManager.MUSIC, music_node), + null, + true, + false + ) + + object_manager.reset_game_state() + + assert_bool(object_manager.has(ESCObjectManager.MUSIC)).is_true() + assert_object(object_manager.get_object(ESCObjectManager.MUSIC).node).is_same(music_node) + + music_node.free() + + +func test_reset_game_state_clears_saved_terrain_state() -> void: + var object_manager := ESCObjectManager.new() + var room := ESCRoom.new() + room.global_id = "test_room" + var navigation_region := NavigationRegion2D.new() + + object_manager.set_current_room(room) + object_manager.register_terrain( + ESCObject.new("test_terrain", navigation_region), + room + ) + assert_int(object_manager.room_terrains.size()).is_equal(1) + + object_manager.reset_game_state() + + assert_int(object_manager.room_terrains.size()).is_equal(0) + + navigation_region.free() + room.free() |
