public void Should_have_error_Rover_Outside_Map_Border_UpperRight() { RoverMapValidator roverMapValidator = new RoverMapValidator(upperRightPointModel); IRoverModel roverModel = new RectangleRoverModel(); roverModel.X = upperRightPointModel.X; roverModel.Y = upperRightPointModel.Y; var validator = roverMapValidator.Validate(roverModel); Assert.AreEqual(true, validator.IsValid, validator.Errors.FirstOrDefault()?.ErrorMessage); }
private static RectangleRoverModel GetRoverInput(IPointModel upperRight) { RectangleRoverModel rectangleRoverModel = new RectangleRoverModel(); RectangleRoverInputValidator validator = new RectangleRoverInputValidator(); RoverMapValidator roverMapValidator = new RoverMapValidator(upperRight); string rectangleRoverInput; do { do { Consol.WriteColor(ConsoleColor.Red, ConsoleApp.Properties.Resources.RoverInputLabel); rectangleRoverInput = Console.ReadLine().Trim(); } while (CommonValidateInfo(validator, rectangleRoverInput)); string[] values = rectangleRoverInput.Trim().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); rectangleRoverModel.X = Convert.ToInt32(values[0]); rectangleRoverModel.Y = Convert.ToInt32(values[1]); rectangleRoverModel.Direction = Enum.Parse <DirectionType>(values[2].ToUpperInvariant()); } while (CommonValidateInfo(roverMapValidator, rectangleRoverModel)); return(rectangleRoverModel); }