56 lines
1.3 KiB
C#
56 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using Encompass;
|
|
using Encompass.Engines;
|
|
using NUnit.Framework;
|
|
|
|
namespace Tests
|
|
{
|
|
public class SpawnerTest
|
|
{
|
|
struct TestComponent : IComponent { }
|
|
struct SpawnMessageA : IMessage { }
|
|
|
|
static Entity resultEntity;
|
|
|
|
[Emits(typeof(SpawnMessageA))]
|
|
class MessageEmitter : Engine
|
|
{
|
|
public override void Update(double dt)
|
|
{
|
|
EmitMessage(new SpawnMessageA());
|
|
}
|
|
}
|
|
|
|
class TestSpawner : Spawner<SpawnMessageA>
|
|
{
|
|
protected override void Spawn(SpawnMessageA message)
|
|
{
|
|
resultEntity = CreateEntity();
|
|
resultEntity.AddComponent(new TestComponent());
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void RunsSpawnMethodOnMessageRead()
|
|
{
|
|
var worldBuilder = new WorldBuilder();
|
|
worldBuilder.AddEngine(new MessageEmitter());
|
|
worldBuilder.AddEngine(new TestSpawner());
|
|
|
|
var world = worldBuilder.Build();
|
|
|
|
world.Update(0.01);
|
|
|
|
Assert.That(resultEntity.HasComponent<TestComponent>(), Is.True);
|
|
|
|
var id = resultEntity.id;
|
|
|
|
world.Update(0.01);
|
|
|
|
Assert.That(resultEntity.id, Is.Not.EqualTo(id));
|
|
}
|
|
}
|
|
}
|