add tests for component-entity getters
parent
c994e9d7fe
commit
5da8e2b71d
|
@ -32,6 +32,17 @@ namespace Tests
|
|||
}
|
||||
}
|
||||
|
||||
static List<(Guid, MockComponent, Entity)> resultComponentsIncludingEntity;
|
||||
static (Guid, MockComponent, Entity) resultComponentIncludingEntity;
|
||||
|
||||
[Reads(typeof(MockComponent))]
|
||||
public class ReadComponentsIncludingEntityEngine : Engine
|
||||
{
|
||||
public override void Update(double dt)
|
||||
{
|
||||
resultComponentsIncludingEntity = ReadComponentsIncludingEntity<MockComponent>().ToList();
|
||||
}
|
||||
}
|
||||
|
||||
[Reads(typeof(MockComponent))]
|
||||
public class ReadComponentTestEngine : Engine
|
||||
|
@ -42,6 +53,15 @@ namespace Tests
|
|||
}
|
||||
}
|
||||
|
||||
[Reads(typeof(MockComponent))]
|
||||
public class ReadComponentIncludingEntityEngine : Engine
|
||||
{
|
||||
public override void Update(double dt)
|
||||
{
|
||||
resultComponentIncludingEntity = ReadComponentIncludingEntity<MockComponent>();
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReadComponents()
|
||||
{
|
||||
|
@ -71,6 +91,42 @@ namespace Tests
|
|||
resultComponentValues.Should().Contain(mockComponentB);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReadComponentsIncludingEntity()
|
||||
{
|
||||
var worldBuilder = new WorldBuilder();
|
||||
worldBuilder.AddEngine(new ReadComponentsIncludingEntityEngine());
|
||||
|
||||
var entity = worldBuilder.CreateEntity();
|
||||
var entityB = worldBuilder.CreateEntity();
|
||||
|
||||
MockComponent mockComponent;
|
||||
mockComponent.myInt = 0;
|
||||
mockComponent.myString = "hello";
|
||||
|
||||
MockComponent mockComponentB;
|
||||
mockComponentB.myInt = 1;
|
||||
mockComponentB.myString = "howdy";
|
||||
|
||||
var componentAID = worldBuilder.SetComponent(entity, mockComponent);
|
||||
var componentBID = worldBuilder.SetComponent(entityB, mockComponentB);
|
||||
|
||||
var world = worldBuilder.Build();
|
||||
|
||||
world.Update(0.01f);
|
||||
|
||||
var resultComponentValues = resultComponentsIncludingEntity.Select((kv) => kv.Item2);
|
||||
resultComponentValues.Should().Contain(mockComponent);
|
||||
resultComponentValues.Should().Contain(mockComponentB);
|
||||
|
||||
var resultEntities = resultComponentsIncludingEntity.Select((kv) => kv.Item3);
|
||||
resultEntities.Should().Contain(entity);
|
||||
resultEntities.Should().Contain(entityB);
|
||||
|
||||
resultComponentsIncludingEntity.Should().Contain((componentAID, mockComponent, entity));
|
||||
resultComponentsIncludingEntity.Should().Contain((componentBID, mockComponentB, entityB));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReadComponent()
|
||||
{
|
||||
|
@ -119,6 +175,27 @@ namespace Tests
|
|||
Assert.That(resultComponent, Is.EqualTo(mockComponent).Or.EqualTo(mockComponentB));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReadComponentWithEntity()
|
||||
{
|
||||
var worldBuilder = new WorldBuilder();
|
||||
worldBuilder.AddEngine(new ReadComponentIncludingEntityEngine());
|
||||
|
||||
var entity = worldBuilder.CreateEntity();
|
||||
|
||||
MockComponent mockComponent;
|
||||
mockComponent.myInt = 0;
|
||||
mockComponent.myString = "hello";
|
||||
|
||||
var componentID = worldBuilder.SetComponent(entity, mockComponent);
|
||||
|
||||
var world = worldBuilder.Build();
|
||||
|
||||
world.Update(0.01f);
|
||||
|
||||
(componentID, mockComponent, entity).Should().BeEquivalentTo(resultComponentIncludingEntity);
|
||||
}
|
||||
|
||||
[Reads(typeof(MockComponent))]
|
||||
[Writes(typeof(MockComponent))]
|
||||
public class UpdateComponentTestEngine : Engine
|
||||
|
|
Loading…
Reference in New Issue