feat: basic behaviour tests
This commit is contained in:
parent
3c23ac7f1e
commit
ac0eac3fbb
71
Engine.Tests/Behaviour_Tests.cs
Normal file
71
Engine.Tests/Behaviour_Tests.cs
Normal 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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user