示例#1
0
        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);
        }
示例#2
0
        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);
        }