Esempio n. 1
0
        private Rover GenerateRover(int positionX, int positionY, FacingTypes facingTo)
        {
            var roverInitialState = new RoverState(positionX, positionY, facingTo);
            var roverContext      = new RoverContext(roverInitialState);

            return(new Rover(roverContext));
        }
Esempio n. 2
0
        static void InitializeRoverToDB(RoverData rover)
        {
            using (var context = new RoverContext())
            {
                rover = new RoverData()
                {
                    Routes = new List <Route>()
                    {
                        new Route()
                        {
                            Time        = new DateTime(),
                            Coordinates = new List <Coordinates>()
                            {
                                new Coordinates()
                                {
                                }
                            }
                        }
                    }
                };

                context.Rovers.Add(rover);
                context.SaveChanges();
            }
        }
Esempio n. 3
0
 public RoverController(RoverData rover,
                        IRoverMovementStrategy roverMovementStrategy,
                        RoverContext context)
 {
     this._rover = rover;
     this._roverMovementStrategy = roverMovementStrategy;
     this._context = context;
 }
Esempio n. 4
0
        public void ActionIsMove_And_SurfaceIsNotBigEnough__VehiclePositionShouldChange()
        {
            const int x = 0;
            const int y = 0;
            const CompassDirections direction = CompassDirections.N;

            var rover = new Rover(x, y, direction);
            var sut   = new RoverContext(_surfaceMock.Object,
                                         rover);

            _surfaceMock.Setup(surface => surface.Contains(It.IsAny <Point>()))
            .Returns(false);

            Assert.Throws <VehicleConnectionLostException>(() => sut.Move(VehicleActions.M));
        }
Esempio n. 5
0
        public void ActionIsMove_And_SurfaceIsBigEnough__VehiclePositionShouldChange()
        {
            const int x = 0;
            const int y = 0;
            const CompassDirections direction = CompassDirections.N;

            var rover = new Rover(x, y, direction);
            var sut   = new RoverContext(_surfaceMock.Object,
                                         rover);

            sut.Move(VehicleActions.M);

            Assert.Equal(x, sut.Vehicle.CurrentPoint.X);
            Assert.Equal(y + 1, sut.Vehicle.CurrentPoint.Y);
            Assert.Equal(direction, sut.Vehicle.Facade);
        }
Esempio n. 6
0
        public void ActionIsTurn__VehicleTurnMethodWillBeInvoked(VehicleActions vehicleAction, CompassDirections expectedDirection)
        {
            const int x = 0;
            const int y = 0;
            const CompassDirections direction = CompassDirections.N;

            var rover = new Rover(x, y, direction);
            var sut   = new RoverContext(_surfaceMock.Object,
                                         rover);

            sut.Move(vehicleAction);

            Assert.Equal(x, sut.Vehicle.CurrentPoint.X);
            Assert.Equal(y, sut.Vehicle.CurrentPoint.Y);
            Assert.Equal(expectedDirection, sut.Vehicle.Facade);
        }
Esempio n. 7
0
        public IVehicleContext Generate(Surface surface, Vehicle vehicle)
        {
            surface = surface ?? throw new DevelopmentException($"{nameof(surface)} should not be null");
            vehicle = vehicle ?? throw new DevelopmentException($"{nameof(vehicle)} should not be null");

            IVehicleContext vehicleContext;

            if (vehicle is Rover)
            {
                vehicleContext = new RoverContext(surface, vehicle);
            }
            else
            {
                throw new DevelopmentException($"There is no predefined VehicleContext for Vehicle [{vehicle.GetType().Name}]");
            }

            return(vehicleContext);
        }
Esempio n. 8
0
        public IVehicleContext Generate(Surface surface, Vehicle vehicle)
        {
            surface = surface ?? throw new Exception($"{nameof(surface)} should not be null");
            vehicle = vehicle ?? throw new Exception($"{nameof(vehicle)} should not be null");

            IVehicleContext vehicleContext;

            if (vehicle is Rover)
            {
                vehicleContext = new RoverContext(vehicle, surface);
            }
            else
            {
                throw new Exception($"Vehicle is not defined [{vehicle.GetType().Name}]");
            }

            return(vehicleContext);
        }
Esempio n. 9
0
 public RoverRepository(RoverContext context)
 {
     _context = context;
 }
 public PlateauRepository(RoverContext context)
 {
     _context = context;
 }