12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- """
- Copyright (c) Contributors to the Open 3D Engine Project.
- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- SPDX-License-Identifier: Apache-2.0 OR MIT
- Test case ID : C19578018
- Test Case Title : Verify that a shape collider component with no shape component indicates a missing service
- """
- # fmt: off
- class Tests():
- create_collider_entity = ("Created Collider Entity", "Failed to create Collider Entity")
- add_physx_shape_collider = ("PhysX Shape Collider added", "Failed to add PhysX Shape Collider")
- collider_component_inactive = ("Collider component is Inactive", "Collider component is Active")
- add_shape_component = ("Shape component added", "Failed to add Shape component")
- collider_component_active = ("Collider component is active", "Collider component is inactive")
- # fmt: on
- def ShapeCollider_InactiveWhenNoShapeComponent():
- """
- Summary:
- Create an Entity with PhysX Shape Collider component and verify that PhysX Shape Collider Component
- is inactive without shape component.
- Expected Behavior:
- The PhysX Shape Collider component should be inactive.
- Verify that after a shape component is added, the warning goes away.
- Test Steps:
- 1) Load the level
- 2) Add an entity with a PhysX Shape Collider component.
- 3) Validate Collider Entity
- 4) Validate PhysX Shape Collider component is inactive.
- 5) Add Shape component to Entity
- 6) Validate PhysX Shape Collider component is Active.
- 7) Close the editor
- Note:
- - This test file must be called from the Open 3D Engine Editor command terminal
- - Any passed and failed tests are written to the Editor.log file.
- Parsing the file or running a log_monitor are required to observe the test results.
- :return: None
- """
- # Built-in Imports
- # Helper Imports
- from editor_python_test_tools.utils import Report
- from editor_python_test_tools.editor_entity_utils import EditorEntity
- from editor_python_test_tools.utils import TestHelper as helper
- from consts.physics import PHYSX_SHAPE_COLLIDER
- import editor_python_test_tools.hydra_editor_utils as hydra
- # Open 3D Engine Imports
- import azlmbr.bus as bus
- import azlmbr.editor as editor
- def is_component_active(component_id) -> bool:
- """
- Used to check if component is Active
- :return: boolean, True if component is active, else False
- """
- return editor.EditorComponentAPIBus(bus.Broadcast, "IsComponentEnabled", component_id)
- # 1) Load the level
- hydra.open_base_level()
- # 2) Add an entity with a PhysX Shape Collider component.
- collider = EditorEntity.create_editor_entity("Collider")
- collider.add_component("PhysX Static Rigid Body")
- physx_component = collider.add_component(PHYSX_SHAPE_COLLIDER)
- # 3) Validate Collider Entity
- Report.result(Tests.create_collider_entity, collider.id.IsValid())
- # 4) Validate PhysX Shape Collider component is inactive.
- Report.result(Tests.add_physx_shape_collider, collider.has_component(PHYSX_SHAPE_COLLIDER))
- Report.result(Tests.collider_component_inactive, not is_component_active(physx_component.id))
- # 5) Add Shape component to Entity
- collider.add_component("Box Shape")
- Report.result(Tests.add_shape_component, collider.has_component("Box Shape"))
- # 6) Validate PhysX Shape Collider component is Active.
- Report.result(Tests.collider_component_active, is_component_active(physx_component.id))
- if __name__ == "__main__":
- from editor_python_test_tools.utils import Report
- Report.start_test(ShapeCollider_InactiveWhenNoShapeComponent)
|