コード例 #1
0
        public void VerifyThatListOfItemsIsSuitablyAdjustedWhenGameObjectMovesFromAnAdditionalOccupiedSpaceToFreeSpace()
        {
            var g = new GameForUnitTests();

            var instructions = new[]
            {
                new PlayerController.TimedInstruction(TimeSpan.Zero, PlayerController.Instruction.Move(Direction.Right))
            };

            g.UnitTestServices.PlayerController.Enqueue(instructions);

            g.LoadLevel("p ");
            GlobalServices.GameState.AddGrave(new TilePos(0, 0));

            g.RunTest();

            var list = GlobalServices.GameState.GetItemsOnTile(new TilePos(0, 0)).ToList();

            Assert.IsNotNull(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Grave);

            list = GlobalServices.GameState.GetItemsOnTile(new TilePos(1, 0)).ToList();
            Assert.NotNull(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Player);
        }
コード例 #2
0
        public void TestPlayerCannotShootBoulder3()
        {
            var g = new GameForUnitTests();

            var instructions = new[]
            {
                new PlayerController.TimedInstruction(TimeSpan.Zero, PlayerController.Instruction.Fire(Direction.Left))
            };

            g.UnitTestServices.PlayerController.Enqueue(instructions);

            g.LoadLevel("# bbp ");

            g.RunTest();

            Assert.IsFalse(GlobalServices.GameState.DoesShotExist());
            var list = GlobalServices.GameState.GetItemsOnTile(new TilePos(2, 0)).ToList();

            Assert.IsNotEmpty(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Boulder);
            list = GlobalServices.GameState.GetItemsOnTile(new TilePos(3, 0)).ToList();
            Assert.IsNotEmpty(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Boulder);
        }
コード例 #3
0
        public void TestPlayerBouncesOneBoulderAndEndsUpPushingAnother()
        {
            var g = new GameForUnitTests();

            var instructions = new[]
            {
                new PlayerController.TimedInstruction(TimeSpan.Zero, PlayerController.Instruction.Move(Direction.Left))
            };

            g.UnitTestServices.PlayerController.Enqueue(instructions);

            g.LoadLevel("#bpb #");

            g.RunTest();

            var list = GlobalServices.GameState.GetItemsOnTile(new TilePos(1, 0)).ToList();

            Assert.NotNull(list);
            Assert.IsEmpty(list);

            list = GlobalServices.GameState.GetItemsOnTile(new TilePos(2, 0)).ToList();
            Assert.NotNull(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Boulder);

            list = GlobalServices.GameState.GetItemsOnTile(new TilePos(3, 0)).ToList();
            Assert.NotNull(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Player);

            list = GlobalServices.GameState.GetItemsOnTile(new TilePos(4, 0)).ToList();
            Assert.NotNull(list);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0] is Boulder);
        }
コード例 #4
0
        public void VerifyThatTheListOfItemsMovesWhenGameObjectMovesToAnAdjacentEmptySpace()
        {
            var g = new GameForUnitTests();

            var instructions = new[]
            {
                new PlayerController.TimedInstruction(TimeSpan.Zero, PlayerController.Instruction.Move(Direction.Right))
            };

            g.UnitTestServices.PlayerController.Enqueue(instructions);

            g.LoadLevel("p ");
            var p = GlobalServices.GameState.Player;

            g.RunTest();

            Assert.IsEmpty(GlobalServices.GameState.GetItemsOnTile(new TilePos(0, 0)));
            var list = GlobalServices.GameState.GetItemsOnTile(new TilePos(1, 0)).ToList();

            Assert.IsNotEmpty(list);
            Assert.IsTrue(list.SequenceEqual(new List <StaticItem> {
                p
            }));
        }