public void GetBystaffId_should_handle_exception() { // Arrange ByStaffIdRequest request = new ByStaffIdRequest { StaffId = 1 }; BaseMock.ShouldThrowException = true; LogData expectedLog = new() { CallSide = nameof(MotivationModificatorController), CallerMethodName = nameof(_motivationModificatorController.GetBystaffId), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = new Exception(BaseMock.ExceptionMessage) }; // Act ObjectResult actual = _motivationModificatorController.GetBystaffId(request.StaffId) as ObjectResult; // Assert Assert.AreEqual(500, actual.StatusCode, "StatusCode as expected"); Assert.AreEqual(BaseMock.ErrorResponseMessage, actual.Value, "Response data as expected"); _loggerMock.Verify(m => m.AddErrorLog(expectedLog), Times.Once); _motivationModificatorsClientMock.Verify(m => m.GetByStaffId(request, null, null, new CancellationToken()), Times.Once); } }
public override Task <MotivationModificatorResponse> GetByStaffId(ByStaffIdRequest request, ServerCallContext context) { MotivationModificatorResponse response = new() { Status = new BaseResponse { Code = Code.Success, ErrorMessage = string.Empty } }; try { MotivationModificator motivationModificator = _motivationModificatorRepository.GetByStaffId(request.StaffId); response.Data = motivationModificator is null ? null: ToRpcModel(motivationModificator); LogData logData = new() { CallSide = nameof(MotivationModificatorsService), CallerMethodName = nameof(GetByStaffId), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; _logger.AddLog(logData); } catch (Exception ex) { LogData logData = new() { CallSide = nameof(MotivationModificatorsService), CallerMethodName = nameof(GetByStaffId), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = ex }; _logger.AddErrorLog(logData); response.Status.Code = Code.UnknownError; response.Status.ErrorMessage = "An error occured while loading motivation modificator data"; } return(Task.FromResult(response)); }