From 9057228795a13e1bd3e1fccf92047710dd165073 Mon Sep 17 00:00:00 2001 From: Evan Hemsley <2342303+ehemsley@users.noreply.github.com> Date: Sun, 29 Dec 2019 20:41:35 -0800 Subject: [PATCH] fix bug when no messages existed for queried entity --- encompass-cs/Collections/TypedMessageStore.cs | 2 +- test/EngineTest.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/encompass-cs/Collections/TypedMessageStore.cs b/encompass-cs/Collections/TypedMessageStore.cs index aef3a5c..54aebe6 100644 --- a/encompass-cs/Collections/TypedMessageStore.cs +++ b/encompass-cs/Collections/TypedMessageStore.cs @@ -90,7 +90,7 @@ namespace Encompass public IEnumerable WithEntity(int entityID) { - return entityToMessage[entityID]; + return entityToMessage.ContainsKey(entityID) ? entityToMessage[entityID] : System.Linq.Enumerable.Empty(); } public override void Clear() diff --git a/test/EngineTest.cs b/test/EngineTest.cs index 7e095dd..74dae7e 100644 --- a/test/EngineTest.cs +++ b/test/EngineTest.cs @@ -483,6 +483,20 @@ namespace Tests entityMessageResults.Should().ContainEquivalentOf(new EntityMessage(entity, 5)); } + [Test] + public void NoMessagesWithEntity() + { + var worldBuilder = new WorldBuilder(); + + var entity = worldBuilder.CreateEntity(); + worldBuilder.AddEngine(new EntityMessageReceiverEngine(entity)); + + var world = worldBuilder.Build(); + world.Update(0.01); + + entityMessageResults.Should().BeEmpty(); + } + class SomeComponentTestEngine : Engine { public override void Update(double dt)