public IActionResult Post(RoverModel model)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (model.RoverId <= 0)
     {
         return(BadRequest("Id should be a positive integer value."));
     }
     try
     {
         var rover = RoverFactory.Create(model.RoverId, model.RoverName, 0, 0, Direction.N);
         return(Ok(new { RoverId = rover.Id, RoverName = rover.Name }));
     }
     catch (System.Exception ex)
     {
         if (ex.Message == "EXISTS")
         {
             return(Conflict(new ApiResponse
             {
                 Status = 409,
                 Message = "Rover already exists, Cannot be  created"
             }));
         }
         else
         {
             return(StatusCode(500));
         }
     }
 }
Example #2
0
 public IActionResult Post(RoverModel model)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (model.RoverId <= 0)
     {
         return(BadRequest(Messages.InvalidId));
     }
     try
     {
         var rover = RoverFactory.Create(model.RoverId, model.RoverName, 0, 0, Direction.N);
         return(Ok(new { RoverId = rover.Id, RoverName = rover.Name }));
     }
     catch (System.Exception ex)
     {
         if (ex.Message == "EXISTS")
         {
             return(Conflict(new ApiResponse
             {
                 Status = 409,
                 Message = Messages.RoverAlreadyExist
             }));
         }
         else
         {
             return(StatusCode(500));
         }
     }
 }
Example #3
0
        public void Test_Run_Should_Move_To_13N_When_Given_Input()
        {
            //Given
            RoverRunner roverRunner = new RoverRunner();

            roverRunner.Add(RoverFactory.Create(1, 2, 'N', "Rover", new Plateau(5, 5)), "LMLMLMLMM");

            //When
            var result = roverRunner.Run();

            //Then
            Assert.Equal("1 3 N", result[0]);
        }
Example #4
0
        public void Test_Run_Should_Move_To_51E_When_Given_Input()
        {
            //Given
            RoverRunner roverRunner = new RoverRunner();

            roverRunner.Add(RoverFactory.Create(3, 3, 'E', "Rover", new Plateau(5, 5)), "MMRMMRMRRM");

            //When
            var result = roverRunner.Run();

            //Then
            Assert.Equal("5 1 E", result[0]);
        }
Example #5
0
        public void Test_Run_Should_Move_All_Rovers_Sequentially_When_Given_Input()
        {
            //Given
            RoverRunner roverRunner = new RoverRunner();

            roverRunner.Add(RoverFactory.Create(1, 2, 'N', "Rover-1", new Plateau(5, 5)), "LMLMLMLMM");
            roverRunner.Add(RoverFactory.Create(3, 3, 'E', "Rover-2", new Plateau(5, 5)), "MMRMMRMRRM");

            //When
            var result = roverRunner.Run();

            //Then
            Assert.Equal("1 3 N", result[0]);
            Assert.Equal("5 1 E", result[1]);
        }
Example #6
0
 public string LandRover(char direction, int x, int y)
 {
     ActiveRover = RoverFactory.Create(direction, x, y);
     return(ActiveRover.Position);
 }