Esempio n. 1
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();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            ConfigureServices();

            IRoverService roverService = _serviceProvider.GetService <IRoverService>();

            Plateau  plateau  = new Plateau(5, 5);
            Position position = new Position(1, 2, Directions.N);
            string   moves    = "LMLMLMLMM";
            Rover    rover    = new Rover
            {
                Position = position,
                Plateau  = plateau,
                Moves    = moves
            };

            var result_12N = roverService.StartMoving(rover);

            Console.WriteLine($"{result_12N.X} {result_12N.Y} {result_12N.Direction}");

            position = new Position(3, 3, Directions.E);
            moves    = "MMRMMRMRRM";
            rover    = new Rover
            {
                Plateau  = plateau,
                Position = position,
                Moves    = moves
            };
            var result_33E = roverService.StartMoving(rover);

            Console.WriteLine($"{result_33E.X} {result_33E.Y} {result_33E.Direction}");
            Console.ReadLine();
        }
Esempio n. 3
0
 public void Create_Rover_Get_Success()
 {
     result       = new Result();
     rover        = new Rover(new Position(2, 2), Direction.N);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), result);
     Assert.AreEqual(result.IsSuccess, true);
 }
Esempio n. 4
0
 public void Create_Rover_Should_Throw_Exception()
 {
     result       = new Result();
     rover        = new Rover(new Position(6, 2), Direction.N);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), result);
     Assert.AreEqual(result.IsSuccess, false);
 }
Esempio n. 5
0
 public void Setup()
 {
     roverService = new RoverService();
     plateau      = new Plateau(5, 5);
     coordinates  = new Coordinates(1, 2);
     rover        = new Rover(plateau, Domain.Enum.Direction.North, coordinates);
 }
Esempio n. 6
0
 public void Get_Rover_Location_Without_Commands()
 {
     result       = new Result();
     rover        = new Rover(new Position(2, 2), Direction.N);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), new Result());
     Assert.AreEqual(roverService.GetCurrentLocation(), "2 2 N");
 }
Esempio n. 7
0
        static void Main(string[] args)
        {
            //Connect Service injector Get concrete class of service interfaces
            ServiceProvider serviceProvider = ServiceInjector.Register();
            IRoverService   roverService    = serviceProvider.GetService <IRoverService>();

            CommandInvoker commandInvoker = new CommandInvoker();

            //Get Inputs
            List <string> inputs = InputGenerator.GetInputs();

            //Get Rovers by sending input parameters set commands of each rover
            List <Rover> rovers = roverService.GetRoversByInput(inputs);

            //Invoke Rover Commands
            foreach (var rover in rovers)
            {
                foreach (var command in rover.Commands)
                {
                    //Set each rover commands
                    commandInvoker.SetCommand(command);
                    commandInvoker.Invoke();
                }
            }

            //Show Output
            OutputHelper(rovers);
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            ////servisler tanımlanıyor.
            ServiceProvider serviceProvider = DependencyInjection.Register();
            IRoverService   roverService    = serviceProvider.GetService <IRoverService>();

            CommandInvoker commandInvoker = new CommandInvoker();

            List <string> inputs = GetInputs();

            /// verilen bilgilere göre rover'lar oluşturuluyor.
            List <Rover> rovers = roverService.GetRovers(inputs);

            /// oluşan roverlar'ın komutları(sağa dön, sola dön, ilerle) set edilip hareket etmesi sağlanıyor.
            foreach (var rover in rovers)
            {
                foreach (var roverCommand in rover.Commands)
                {
                    commandInvoker.SetCommand(roverCommand);
                    commandInvoker.Invoke();
                }
            }

            WriteOutput(rovers);
        }
Esempio n. 9
0
        public void Setup()
        {
            var services            = ConfigureServices();
            var roverCommandFactory = services.GetService <IRoverCommandFactory>();

            _roverService = new RoverService(roverCommandFactory);
        }
Esempio n. 10
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();
        }
Esempio n. 11
0
 public CreateRoverCommand(IRoverService roverService, IPlateauService plateauService, int x, int y, Direction direction)
 {
     _roverService   = roverService;
     _x              = x;
     _y              = y;
     _direction      = direction;
     _plateauService = plateauService;
 }
Esempio n. 12
0
 public void SetUp()
 {
     _rover             = new Rover(0, 0);
     _pluto             = new Pluto(XSize, YSize);
     _turnOperation     = new TurnOperation();
     _movementOperation = new MovementOperation();
     _service           = new RoverService();
 }
Esempio n. 13
0
 public MarsRoverApplication(IRoverService roverService, IPlateauService plateauService
                             , INavigationService navigationService, ILogger <MarsRoverApplication> logger)
 {
     _roverService      = roverService;
     _plateauService    = plateauService;
     _navigationService = navigationService;
     _logger            = logger;
 }
Esempio n. 14
0
 public void When_Command_Exceeds_The_Limits()
 {
     result       = new Result();
     rover        = new Rover(new Position(3, 3), Direction.N);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), new Result());
     roverService.Process("MMMMMMMMMMR");
     Assert.AreEqual(roverService.GetCurrentLocation(), "3 5 E");
 }
Esempio n. 15
0
 public void Rover_Check_Location_Success()
 {
     result       = new Result();
     rover        = new Rover(new Position(1, 1), Direction.N);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), new Result());
     roverService.Process("MRML");
     Assert.AreEqual(roverService.GetCurrentLocation(), "2 2 N");
 }
Esempio n. 16
0
 public void Second_Rover_Check_Location_Success()
 {
     result       = new Result();
     rover        = new Rover(new Position(3, 3), Direction.E);
     roverService = new RoverService(rover, new Plateau(5, 5, new Result()), new Result());
     roverService.Process("MMRMMRMRRM");
     Assert.AreEqual(roverService.GetCurrentLocation(), "5 1 E");
 }
Esempio n. 17
0
        public MainWindow(IGridService gridService, IRoverService roverService, IGridService grid)
        {
            _gridService       = gridService;
            _roverService      = roverService;
            _grid              = grid;
            _missionController = new MissionController(_roverService, _gridService);

            InitializeComponent();
        }
Esempio n. 18
0
        public void First_Rover_Check_Location_Error()
        {
            result       = new Result();
            rover        = new Rover(new Position(1, 2), Direction.N);
            roverService = new RoverService(rover, new Plateau(5, 5, new Result()), new Result());

            var ex = Assert.Throws <Exception>(() => roverService.Process("LRAR"));

            Assert.AreEqual("Commands invalid", ex.Message);
        }
 public RoverController(IInputProviderService inputProviderService,
                        IInputModelAssembler inputModelAssembler,
                        IPlateauService plateauService,
                        IRoverService roverService)
 {
     _inputProviderService = inputProviderService;
     _inputModelAssembler  = inputModelAssembler;
     _plateauService       = plateauService;
     _roverService         = roverService;
 }
Esempio n. 20
0
 /// <summary>
 /// Constructor
 /// </summary>
 public ImageDownloaderService(IRoverService roverService,
                               Hosting.IHostingEnvironment environment,
                               ILogger <ImageDownloaderService> logger,
                               IFileSystem fileSystem)
 {
     _roverService = roverService ?? throw new ArgumentNullException(nameof(roverService));
     _environment  = environment ?? throw new ArgumentNullException(nameof(environment));
     _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
     _fileSystem   = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
 }
Esempio n. 21
0
        static void RegisterServices()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <RoverService>().As <IRoverService>().InstancePerLifetimeScope();
            var container = builder.Build();

            using (var newScope = container.BeginLifetimeScope())
            {
                _roverService = newScope.Resolve <IRoverService>();
            }
        }
Esempio n. 22
0
        public RoverServiceFixture()
        {
            _plateauServiceMock  = new Mock <IPlateauService>();
            _roverCommandService = new RoverCommandService();
            _roverService        = new RoverService(_roverCommandService, _plateauServiceMock.Object);

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

            _plateauServiceMock.Setup(x => x.SetPlateauPosition(_plateauPosition));
        }
Esempio n. 23
0
 public OperationService
 (
     ICalculateService calculateService,
     IRoverService roverService,
     IPlateauService plateauService,
     ILogger <OperationService> logger
 )
 {
     _calculateService = calculateService;
     _roverService     = roverService;
     _plateauService   = plateauService;
     _logger           = logger;
 }
Esempio n. 24
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 }
            };
        }
Esempio n. 25
0
 public RoverController(IRoverService roverService, IEnvironmentSerive environmentSerive)
 {
     _roverService       = roverService;
     _environmentService = environmentSerive;
 }
Esempio n. 26
0
 public MarsRoverController(ILogger <MarsRoverController> logger, IPlateauService plateauService, IRoverService roverService) : base(logger)
 {
     _logger         = logger;
     _plateauService = plateauService;
     _roverService   = roverService;
 }
Esempio n. 27
0
 public RoverController(PlanetService planetService, RoverService roverService)
 {
     _planetService = planetService;
     _roverService  = roverService;
 }
Esempio n. 28
0
 public MissionController(IRoverService roverService, IGridService gridService)
 {
     _roverService = roverService;
     _gridService  = gridService;
 }
Esempio n. 29
0
 public LeftCommand(IRoverService marsRoverService, IDirectionService directionManagerStrategy)
 {
     _roverService     = marsRoverService;
     _directionService = directionManagerStrategy;
 }
Esempio n. 30
0
 public static void TestFixtureSetup(TestContext context)
 {
     _service = new RoverService();
     _rover   = new Domain.Model.Rover.Rover();
 }