public void SetPositionTest() { var result = new CoordinatesRequestModel { XCoordinate = 1, YCoordinate = 2 }; var expect = _marsRoverService.SetPosition(new MoveModel { Position = new CoordinatesRequestModel { XCoordinate = 1, YCoordinate = 1 }, Direction = 'N' }); Assert.AreEqual(expect.YCoordinate, result.YCoordinate); }
public ActionResult Calculate([Bind(Include = CoordinatesRequestModelValidationBindings)] CoordinatesRequestModel model) { if (this.ModelState.IsValid) { var coordinateStrings = model.Coordinates.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) .Select(c => c.Trim()) .Where(c => c.Length > 1) .Distinct() .ToArray(); var viewModel = new CoordinatesResponseViewModel(); foreach (var coordinateString in coordinateStrings) { try { var coordinate = this.coordinateParser.ParseCoordinateString(coordinateString); viewModel.Coordinates.Add(new CoordinateViewModel { Coordinate = coordinateString, Latitude = coordinate.Latitude, Longitude = coordinate.Longitude }); } catch { viewModel.Coordinates.Add(new CoordinateViewModel { Coordinate = coordinateString, Latitude = "Error", Longitude = "Error" }); } } this.Response.StatusCode = (int)HttpStatusCode.OK; return(this.View(viewModel)); } this.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(this.Redirect(nameof(this.Index))); }