コード例 #1
0
        public void TestMoveIntoOccupiedField()
        {
            //given
            var players = new List <(int x, int y, int id, Team team)>()
            {
                (x : 5, y : 5, id : 1, team : Team.Blue),
                (x : 4, y : 5, id : 2, team : Team.Blue)
            };
            var map     = new Map(players: players);
            var message = new Message <MoveRequest>()
            {
                AgentId        = 1,
                MessagePayload = new MoveRequest()
                {
                    Direction = "W"
                }
            };
            var moveHandler = new MoveRequestHandler();
            Message <MoveError> expectedResult = new Message <MoveError>
            {
                AgentId        = 1,
                MessagePayload = new MoveError()
                {
                    Position = new Position()
                    {
                        X = 5,
                        Y = 5
                    }
                }
            };
            //when
            Message response = moveHandler.ProcessRequest(map, message, config);

            //then
            response.Should().BeEquivalentTo(expectedResult);
            map.GetPlayerById(1).Position.Should().BeEquivalentTo(new Position()
            {
                X = 5, Y = 5
            });
        }
コード例 #2
0
        public void TestMoveHandlerInsideN()
        {
            //given
            var players = new List <(int x, int y, int id, Team team)>()
            {
                (0, 8, 1, Team.Red)
            };
            var map     = new Map(players: players);
            var message = new Message <MoveRequest>()
            {
                AgentId        = 1,
                MessagePayload = new MoveRequest()
                {
                    Direction = "N"
                }
            };
            var moveHandler = new MoveRequestHandler();
            Message <MoveResponse> expectedResult = new Message <MoveResponse>
            {
                AgentId        = 1,
                MessagePayload = new MoveResponse()
                {
                    MadeMove        = true,
                    CurrentPosition = new Position()
                    {
                        X = 0, Y = 9
                    },
                    ClosestPiece = int.MaxValue
                }
            };
            //when
            Message response = moveHandler.ProcessRequest(map, message, config);

            //then
            response.Should().BeEquivalentTo(expectedResult);
            map.GetPlayerById(1).Position.Should().BeEquivalentTo(new Position()
            {
                X = 0, Y = 9
            });
        }
コード例 #3
0
        public void TestMoveRedPlayerIntoBlueArea()
        {
            //given
            var players = new List <(int x, int y, int id, Team team)>()
            {
                (0, 3, 1, Team.Red)
            };
            var map     = new Map(players: players);
            var message = new Message <MoveRequest>()
            {
                AgentId        = 1,
                MessagePayload = new MoveRequest()
                {
                    Direction = "S"
                }
            };
            var moveHandler = new MoveRequestHandler();
            Message <MoveError> expectedResult = new Message <MoveError>
            {
                AgentId        = 1,
                MessagePayload = new MoveError()
                {
                    Position = new Position()
                    {
                        X = 0,
                        Y = 3
                    }
                }
            };
            //when
            Message response = moveHandler.ProcessRequest(map, message, config);

            //then
            response.Should().BeEquivalentTo(expectedResult);
            map.GetPlayerById(1).Position.Should().BeEquivalentTo(new Position()
            {
                X = 0, Y = 3
            });
        }