public IActionResult RegisterPoint(RegisterPointViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest()); } try { var model = _AppApiBL.RegisterPoint( viewModel.RaceId, viewModel.UniqueId, viewModel.PointId, viewModel.Latitude, viewModel.Longitude, viewModel.Answer); viewModel.Message = model.Message; viewModel.Type = (PointTypeViewModel)model.Type; return(Ok(viewModel)); } catch (BusinessException ex) { return(BadRequest((ErrorCodes)ex.ErrorCode)); } catch (Exception ex) { _Logger.LogError(ex, $"Error in {typeof(AppApiController)}: {ex.Message}"); return(StatusCode(500)); } }
public void RegisterPointBusinessError() { var viewModel = new RegisterPointViewModel(); var exception = new BusinessException("", BLErrorCodes.Duplicate); _BLMock.Setup(bl => bl.RegisterPoint( It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Throws(exception); var result = _Sut.RegisterPoint(viewModel); Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult)); Assert.AreEqual((int)BLErrorCodes.Duplicate, (int)(result as BadRequestObjectResult).Value); }
public void RegisterPointNoError() { var viewModel = new RegisterPointViewModel(); var question = "a"; _BLMock.Setup(bl => bl.RegisterPoint( It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Returns(new Point { Message = question }); var result = _Sut.RegisterPoint(viewModel); Assert.IsInstanceOfType(result, typeof(OkObjectResult)); Assert.AreEqual(viewModel, (result as OkObjectResult).Value); Assert.AreEqual(question, ((RegisterPointViewModel)(result as OkObjectResult).Value).Message); }
public void RegisterPointException() { var viewModel = new RegisterPointViewModel(); var exceptionMessage = "a"; var exception = new Exception(exceptionMessage); _BLMock.Setup(bl => bl.RegisterPoint( It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Throws(exception); var result = _Sut.RegisterPoint(viewModel); Assert.IsInstanceOfType(result, typeof(StatusCodeResult)); Assert.AreEqual(500, (result as StatusCodeResult).StatusCode); _LoggerMock.VerifyLog(LogLevel.Error, Times.Once, $"Error in {typeof(AppApiController)}: {exceptionMessage}"); }