Syntriax.Engine/Engine.Tests/Behaviour_Tests.cs

72 lines
2.0 KiB
C#

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>();
Assert.True(behaviourX.IsActive);
}
[Fact]
public void BehaviourNotActiveOnDisabled()
{
IUniverseObject universeObject = CreateUniverseObject();
BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour<BehaviourX>();
behaviourX.StateEnable.Enabled = false;
Assert.False(behaviourX.IsActive);
}
[Fact]
public void BehaviourNotActiveOnBehaviourControllerDisabled()
{
IUniverseObject universeObject = CreateUniverseObject();
BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour<BehaviourX>();
universeObject.BehaviourController.StateEnable.Enabled = false;
Assert.False(behaviourX.IsActive);
}
[Fact]
public void BehaviourNotActiveOnUniverseObjectDisabled()
{
IUniverseObject universeObject = CreateUniverseObject();
BehaviourX behaviourX = universeObject.BehaviourController.AddBehaviour<BehaviourX>();
universeObject.StateEnable.Enabled = false;
Assert.False(behaviourX.IsActive);
}
public class BehaviourX : BehaviourBase;
}