Beispiel #1
0
        public void Check_ShouldReturnCorrectStatus(int posX, int posY, ResultEnum expectedResult)
        {
            //Arrange
            var currentPos  = new Point(posX, posY);
            var gameSetting = new GameSetting
            {
                ExitPoint     = new Point(4, 4),
                MinePositions = new List <Point>
                {
                    new Point(1, 1),
                    new Point(3, 3)
                }
            };
            var sequenceMoveHandler = new SequenceMoveHandler(gameSetting);
            //Act
            var actualCheck =
                sequenceMoveHandler.Check(new Position()
            {
                Direction = DirectionEnum.East, CurrentPosition = currentPos
            },
                                          false);

            //Assert
            Assert.Equal(expectedResult, actualCheck);
        }
Beispiel #2
0
        public void ProcessGameSequences_ShouldReturnExactNumberOfSequences()
        {
            //Arrange
            var sequence  = "L L M L M M M L M M M";
            var sequences = new List <MoveBehaviorEnum>();

            foreach (var step in sequence.Split(' '))
            {
                sequences.Add(step.ToMoveBehaviorEnum());
            }
            _gameSetting.Sequences = new List <List <MoveBehaviorEnum> > {
                sequences, sequences
            };

            var sequenceMoveHandler = new SequenceMoveHandler(_gameSetting);
            var sequenceProcessor   =
                new Application.SequenceProcessor.SequenceProcessor(_gameSetting, sequenceMoveHandler);
            //Act
            var result = sequenceProcessor.ProcessGameSequences().ToList();

            //Assert
            Assert.Equal(2, result.Count);
            Assert.Equal(ResultEnum.MineHit, result[0].Result);
            Assert.Equal(ResultEnum.MineHit, result[1].Result);
        }
Beispiel #3
0
        public void Move_ShouldReturnCorrectPosition(MoveBehaviorEnum behavior, DirectionEnum direction, int posX,
                                                     int posY, DirectionEnum expectedDirection, int expPosX, int expPosY)
        {
            //Arrange
            var currentPos  = new Point(posX, posY);
            var expectedPos = new Point(expPosX, expPosY);
            var gameSetting = new GameSetting
            {
                BoardSize = new BoardSize
                {
                    Width  = 5,
                    Height = 5
                }
            };
            var sequenceMoveHandler = new SequenceMoveHandler(gameSetting);
            //Act
            var expectedResult = sequenceMoveHandler.Move(behavior, direction, currentPos);

            //Assert
            Assert.Equal(expectedPos, expectedResult.CurrentPosition);
            Assert.Equal(expectedDirection, expectedResult.Direction);
        }
Beispiel #4
0
        public void ProcessGameSequences_ShouldReturnCorrectResult(string sequence, ResultEnum expectedResult)
        {
            //Arrange
            var sequences = new List <MoveBehaviorEnum>();

            foreach (var step in sequence.Split(' '))
            {
                sequences.Add(step.ToMoveBehaviorEnum());
            }

            _gameSetting.Sequences = new List <List <MoveBehaviorEnum> > {
                sequences
            };

            var sequenceMoveHandler = new SequenceMoveHandler(_gameSetting);
            var sequenceProcessor   =
                new Application.SequenceProcessor.SequenceProcessor(_gameSetting, sequenceMoveHandler);
            //Act
            var result = sequenceProcessor.ProcessGameSequences().ToList();

            //Assert
            Assert.Equal(expectedResult, result[0].Result);
        }