general renderer read tests

pull/5/head
Evan Hemsley 2019-06-19 18:01:08 -07:00
parent cf6d59bb5b
commit 1375adf63d
1 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,67 @@
using NUnit.Framework;
using System;
using System.Collections.Generic;
using Encompass;
namespace Tests
{
public class GeneralRendererTest
{
struct AComponent : IComponent { }
public class SingletonRead
{
static KeyValuePair<Guid, AComponent> result;
class TestRenderer : GeneralRenderer
{
public new int Layer { get { return 1; } }
public override void Render()
{
result = ReadComponent<AComponent>();
}
}
[Test]
public void SingletonComponent()
{
var worldBuilder = new WorldBuilder();
worldBuilder.AddRenderer<TestRenderer>();
AComponent aComponent;
var entity = worldBuilder.CreateEntity();
var componentID = entity.AddComponent(aComponent);
var world = worldBuilder.Build();
world.Update(0.01f);
world.Draw();
Assert.That(result, Is.EqualTo(new KeyValuePair<Guid, AComponent>(componentID, aComponent)));
}
[Test]
public void MultipleComponents()
{
var worldBuilder = new WorldBuilder();
worldBuilder.AddRenderer<TestRenderer>();
AComponent aComponent;
AComponent aComponentTwo;
var entity = worldBuilder.CreateEntity();
var componentID = entity.AddComponent(aComponent);
var componentTwoID = entity.AddComponent(aComponentTwo);
var world = worldBuilder.Build();
world.Update(0.01f);
Assert.Throws<InvalidOperationException>(() => world.Draw());
}
}
}
}