73 lines
2.1 KiB
C#
73 lines
2.1 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>();
|
|
behaviourX.StateEnable.Enabled = true;
|
|
|
|
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;
|
|
}
|