Example #1
0
        public Rover(IPlateau plateau, IRouterFactory routerFactory, Position position, string parameters)
            : this(plateau, routerFactory, position)
        {
            foreach (char param in parameters)
            {
                switch (param)
                {
                case 'L':
                {
                    SetDirection(Direction.Left);
                    break;
                }

                case 'R':
                {
                    SetDirection(Direction.Right);
                    break;
                }

                case 'M':
                {
                    Move();
                    break;
                }

                default:
                {
                    throw new ArgumentException("Unexpected parameter", param.ToString());
                }
                }
            }
        }
Example #2
0
        public RoverTest()
        {
            _plateau        = Substitute.For <IPlateau>();
            _plateau.Height = 5;
            _plateau.Width  = 5;

            _routerFactory = Substitute.For <IRouterFactory>();
            _routerFactory.Create(null).ReturnsForAnyArgs(new NorthRouter());
        }
Example #3
0
        public Rover(IPlateau plateau, IRouterFactory routerFactory, Position position)
        {
            Guard.AgainstNullArgument("plateau", plateau);
            Guard.AgainstNullArgument("routerFactory", routerFactory);
            Guard.AgainstNullArgument("position", position);

            _position      = position;
            _routerFactory = routerFactory;
            _plateau       = plateau;
        }
Example #4
0
 public RoverIntegrationTest()
 {
     _routerFactory = new RouterFactory();
     _plateau       = new Plateau(5, 5);
 }
Example #5
0
 public RouterFactoryTest()
 {
     _routerFactory = new RouterFactory();
 }
Example #6
0
 public Rover()
 {
     _position      = new Position(0, 0, Orientation.North);
     _routerFactory = new RouterFactory();
     _plateau       = new Plateau(5, 5);
 }