public void ObjectPositionIsCached() { // Arrange const int posX = 1; const int posY = 2; var destroyable = new Mock <IDestroyableObject>(); destroyable.SetupGet(d => d.Id).Returns("destr_id"); var mapCellsFactory = new Func <IAreaMapCellInternal>(() => new AreaMapCell(new Mock <IEnvironment>().Object)); var map = new AreaMap(1, mapCellsFactory, 5, 5); // Act map.AddObject(posX, posY, destroyable.Object); var position = map.GetObjectPosition <IDestroyableObject>(); // Assert Assert.AreEqual(posX, position.X); Assert.AreEqual(posY, position.Y); }
public void RemovedObjectsAreRemovedFromPositionCache() { // Arrange const int posX = 1; const int posY = 2; var destroyable = new Mock <IDestroyableObject>(); destroyable.SetupGet(d => d.Id).Returns("destr_id"); var mapCellsFactory = new Func <IAreaMapCellInternal>(() => new AreaMapCell(new Mock <IEnvironment>().Object)); var map = new AreaMap(1, mapCellsFactory, 5, 5); var position = new Point(posX, posY); // Act map.AddObject(position, destroyable.Object); map.RemoveObject(position, destroyable.Object); var searchResult = map.GetObjectPosition <IDestroyableObject>(); // Assert Assert.IsNull(searchResult); }