feat: basic behaviour tests

This commit is contained in:
Syntriax 2025-08-04 22:05:08 +03:00
parent 3c23ac7f1e
commit ac0eac3fbb

View File

@ -0,0 +1,71 @@
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;
}