using Syntriax.Engine.Core; namespace Engine.Tests; public class Behaviour_Tests { private static IUniverseObject CreateUniverseObject() { UniverseObject universeObject = new(); BehaviourController behaviourController = new(); universeObject.Assign(new StateEnable()); universeObject.StateEnable.Assign(universeObject); behaviourController.Assign(new StateEnable()); behaviourController.StateEnable.Assign(behaviourController); behaviourController.Assign(universeObject); universeObject.Assign(behaviourController); universeObject.Initialize(); behaviourController.Initialize(); return universeObject; } [Fact] public void BehaviourActive() { IUniverseObject universeObject = CreateUniverseObject(); BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour(); behaviourX.StateEnable.Enabled = true; Assert.True(behaviourX.IsActive); } [Fact] public void BehaviourNotActiveOnDisabled() { IUniverseObject universeObject = CreateUniverseObject(); BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour(); behaviourX.StateEnable.Enabled = false; Assert.False(behaviourX.IsActive); } [Fact] public void BehaviourNotActiveOnBehaviourControllerDisabled() { IUniverseObject universeObject = CreateUniverseObject(); BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour(); universeObject.BehaviourController.StateEnable.Enabled = false; Assert.False(behaviourX.IsActive); } [Fact] public void BehaviourNotActiveOnUniverseObjectDisabled() { IUniverseObject universeObject = CreateUniverseObject(); BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour(); universeObject.StateEnable.Enabled = false; Assert.False(behaviourX.IsActive); } public class BehaviourX : BehaviourBase; }