示例#1
0
        //setup
        public AddTurtleTest()
        {
            _turtleRepository = new Mock <ITurtleRepository>();
            _boardRepository  = new Mock <IBoardRepository>();

            _board = BoardBuilder.NewInstance().WithId(45).Build();
            _boardRepository.Setup(r => r.searchById(_board.Id)).Returns(_board);

            var faker = new Faker();

            _turtleDto = new TurtleDto()
            {
                BoardId = _board.Id,
                Columns = faker.Random.Int(1, 100),
                Rows    = faker.Random.Int(1, 100)
            };

            _addTurtle = new AddTurtle(_turtleRepository.Object, _boardRepository.Object);
        }
示例#2
0
        private PositionDto GetNewFrontPosition(TurtleDto turtle)
        {
            PositionDto position;

            switch (turtle.Direction)
            {
            case (CardinalDirection.N):
                position = new PositionDto()
                {
                    X = turtle.Position.X, Y = turtle.Position.Y - 1
                };
                break;

            case (CardinalDirection.E):
                position = new PositionDto()
                {
                    X = turtle.Position.X + 1, Y = turtle.Position.Y
                };
                break;

            case (CardinalDirection.S):
                position = new PositionDto()
                {
                    X = turtle.Position.X, Y = turtle.Position.Y + 1
                };
                break;

            case (CardinalDirection.W):
                position = new PositionDto()
                {
                    X = turtle.Position.X - 1, Y = turtle.Position.Y
                };
                break;

            default:
                throw new Exception("Invalid direction");
            }

            return(position);
        }