Example #1
0
        public RoverService(IInstructionFactory instructionFactory, IPlateauService plateauService)
        {
            rovers = new List <Rover>();

            _instructionFactory = instructionFactory;
            _plateauService     = plateauService;
        }
Example #2
0
#pragma warning restore xUnit1010 // The value is not convertible to the method parameter type
        public void RotateLeftCommand_ValidPlateauValidRoverAndValidInstructions_ShouldBeEqualGivenResult(int width, int height, int xPosition, int yPosition, Directions direction, Directions result)
        {
            _plateauService = new PlateauService();
            _roverService   = new RoverService(_explorationFactoryMock);

            BaseModels <PlateauModel> basePlateauModel = _plateauService.Create(width, height);

            basePlateauModel.Data.Width.Should().Equals(width);
            basePlateauModel.Data.Height.Should().Equals(height);

            RoverLocationModel roverLocation = new RoverLocationModel()
            {
                Direction = direction,
                XPosition = xPosition,
                YPosition = yPosition
            };

            BaseModels <RoverModel> baseRoverModel = _roverService.Initalize(basePlateauModel.Data, roverLocation);

            _explorationCommandMock = new RotateLeftCommand();

            _explorationCommandMock.Explore(_roverService.GetCurrentRover().Data.Location);

            _roverService.GetCurrentRover().Data.Location.Direction.Should().Be(result);
            Console.WriteLine(result);
            Console.ReadLine();
        }
 public CommandInvoker(IPlateauService plateauService, IMarsRoverService marsRoverService, ILogger <CommandInvoker> logger, IDirectionManagerStrategy directionManagerStrategy)
 {
     _plateauService           = plateauService;
     _marsRoverService         = marsRoverService;
     _logger                   = logger;
     _directionManagerStrategy = directionManagerStrategy;
 }
Example #4
0
        static void Main(string[] args)
        {
            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddSingleton <IExplorationFactory, ExplorationFactory>()
                                              .AddSingleton <IExplorationCommand, RotateRightCommand>()
                                              .AddSingleton <IExplorationCommand, RotateLeftCommand>()
                                              .AddSingleton <IExplorationCommand, MoveForwardCommand>()
                                              .AddSingleton <IPlateauService, PlateauService>()
                                              .AddSingleton <IRoverService, RoverService>()
                                              .AddSingleton <IInstructionService, InstructionService>()
                                              .BuildServiceProvider();


            IPlateauService     plateauService     = serviceProvider.GetService <IPlateauService>();
            IRoverService       roverService       = serviceProvider.GetService <IRoverService>();
            IInstructionService instructionService = serviceProvider.GetService <IInstructionService>();

            List <RoverModel> rovers = new List <RoverModel>();

            BaseModels <PlateauModel> basePlateauModel = plateauService.Create(5, 5);

            Console.WriteLine("5 5");
            RoverLocationModel firstRoverLocation = new RoverLocationModel()
            {
                XPosition = 1,
                YPosition = 2,
                Direction = Directions.North
            };

            Console.WriteLine("1 2 N");
            BaseModels <RoverModel> baseRoverModel = roverService.Initalize(basePlateauModel.Data, firstRoverLocation);

            rovers.Add(baseRoverModel.Data);
            Console.WriteLine("LMLMLMLMM");
            BaseModels <List <Instruction> > baseInstructionModel = instructionService.GetInstructions("LMLMLMLMM");

            foreach (Instruction instruction in baseInstructionModel.Data)
            {
                roverService.ExplorePlateau(instruction);
            }
            Console.WriteLine("3 3 E");
            RoverLocationModel secondRoverLocation = new RoverLocationModel()
            {
                XPosition = 3,
                YPosition = 3,
                Direction = Directions.East
            };

            baseRoverModel = roverService.Initalize(basePlateauModel.Data, secondRoverLocation);
            rovers.Add(baseRoverModel.Data);
            Console.WriteLine("MMRMMRMRRM");
            baseInstructionModel = instructionService.GetInstructions("MMRMMRMRRM");

            foreach (Instruction instruction in baseInstructionModel.Data)
            {
                roverService.ExplorePlateau(instruction);
            }
            Console.ReadLine();
        }
 public CreateMarsRoverCommand(IMarsRoverService marsRoverService, IPlateauService plateauService, int x, int y, Direction direction)
 {
     _marsRoverService = marsRoverService;
     _x              = x;
     _y              = y;
     _direction      = direction;
     _plateauService = plateauService;
 }
Example #6
0
 public CreateRoverCommand(IRoverService roverService, IPlateauService plateauService, int x, int y, Direction direction)
 {
     _roverService   = roverService;
     _x              = x;
     _y              = y;
     _direction      = direction;
     _plateauService = plateauService;
 }
 public MarsRoverApplication(IRoverService roverService, IPlateauService plateauService
                             , INavigationService navigationService, ILogger <MarsRoverApplication> logger)
 {
     _roverService      = roverService;
     _plateauService    = plateauService;
     _navigationService = navigationService;
     _logger            = logger;
 }
 public RoverConsole(IRoverDeploymentService roverDeploymentService,
                     IRoverMovementService roverMovementService,
                     IPlateauService plateauService)
 {
     _roverDeploymentService = roverDeploymentService;
     _roverMovementService   = roverMovementService;
     _plateauService         = plateauService;
 }
Example #9
0
        public RoverService(IPlateauService plateauService, ICoordinateService coordinateService)
        {
            _plateauService    = plateauService;
            _coordinateService = coordinateService;

            CurrentRover = new Rover(
                coordinate: _coordinateService.Coordinate,
                direction: _coordinateService.Direction,
                plateau: _plateauService.Plateau);
        }
 public RoverController(IInputProviderService inputProviderService,
                        IInputModelAssembler inputModelAssembler,
                        IPlateauService plateauService,
                        IRoverService roverService)
 {
     _inputProviderService = inputProviderService;
     _inputModelAssembler  = inputModelAssembler;
     _plateauService       = plateauService;
     _roverService         = roverService;
 }
Example #11
0
        public PlateauServiceFixture()
        {
            _plateauServiceMock = new Mock <IPlateauService>();
            _plateauService     = new PlateauService();

            _plateauPosition = new Position {
                X = 5, Y = 5
            };

            _plateauService.SetPlateauPosition(_plateauPosition);
        }
Example #12
0
        public void Setup()
        {
            var fix = new PlateauModel
            {
                Height = 5,
                Width  = 5
            };
            var mockPlateauService = new Mock <IPlateauService>();

            mockPlateauService.Setup(x => x.GetPlateau()).Returns(fix);
            plateauService = mockPlateauService.Object;
        }
Example #13
0
 public OperationService
 (
     ICalculateService calculateService,
     IRoverService roverService,
     IPlateauService plateauService,
     ILogger <OperationService> logger
 )
 {
     _calculateService = calculateService;
     _roverService     = roverService;
     _plateauService   = plateauService;
     _logger           = logger;
 }
Example #14
0
        public CommandInvoker(IPlateauService plateauService, IRoverService roverService, ILogger <CommandInvoker> logger, IDirectionService directionService)
        {
            _plateauService   = plateauService;
            _roverService     = roverService;
            _logger           = logger;
            _directionService = directionService;

            _commandTypeDictionary = new Dictionary <string, CommandType>
            {
                { @"^\d+ \d+$", CommandType.CreatePlateauCommand },
                { @"^\d+ \d+ [NSEW]$", CommandType.CreateMarsRoverCommand },
                { @"^[LMR]+$", CommandType.MoveRoverCommand }
            };
        }
Example #15
0
        public void CreateMarsRover(RoverPositionModel roverPositionModel, IPlateauService plateauService)
        {
            var plateauModel = plateauService.GetCurrentPlateau();

            if (!IsValid(roverPositionModel, plateauModel))
            {
                var exception = new ValidateMarsRoverPositionException();
                _logger.LogError(exception.Message);
                throw exception;
            }

            _roverPositionModel = new RoverPositionModel
            {
                X         = roverPositionModel.X,
                Y         = roverPositionModel.Y,
                Direction = roverPositionModel.Direction
            };
            plateauService.AddMarsRover(_roverPositionModel);
            _logger.LogInformation($"Created Mars Rover {_roverPositionModel.X}x{_roverPositionModel.Y} - {_roverPositionModel.Direction}.");
        }
 public RoverDeploymentService(IPlateauService plateauService)
 {
     _plateauService = plateauService;
 }
Example #17
0
 public RoverMovementService(IPlateauService plateauService)
 {
     _plateauService = plateauService;
 }
 public CreatePlateauCommand(IPlateauService plateauService, int width, int height)
 {
     _plateauService = plateauService;
     _width          = width;
     _height         = height;
 }
Example #19
0
 public RoverService(IRoverCommandService roverCommandService,
                     IPlateauService plateauService)
 {
     _roverCommandService = roverCommandService;
     _plateauService      = plateauService;
 }
Example #20
0
 public void Setup()
 {
     plateauService = new PlateauService();
 }
Example #21
0
 public MarsRoverController(ILogger <MarsRoverController> logger, IPlateauService plateauService, IRoverService roverService) : base(logger)
 {
     _logger         = logger;
     _plateauService = plateauService;
     _roverService   = roverService;
 }