public IActionResult GetByRangeDate([FromQuery] ByDateRangeRequest request) { try { HolidaysResponse response = _holidaysClient.GetByDateRange(request); LogData logData = new() { CallSide = nameof(HolidaysController), CallerMethodName = nameof(GetByRangeDate), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; _logger.AddLog(logData); return(Ok(response)); } catch (Exception ex) { LogData logData = new() { CallSide = nameof(HolidaysController), CallerMethodName = nameof(GetByRangeDate), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = ex }; _logger.AddErrorLog(logData); return(InternalServerError()); } } }
public void GetAll_should_handle_exception() { // Arrange BaseMock.ShouldThrowException = true; Empty request = new Empty(); HolidaysResponse expectedResponse = new() { Status = new BaseResponse { Code = Code.UnknownError, ErrorMessage = "An error occured while loading holidays data" } }; LogData expectedLog = new() { CallSide = nameof(HolidaysService), CallerMethodName = nameof(_holidaysService.GetAll), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = new Exception("Test exception") }; // Act HolidaysResponse actual = _holidaysService.GetAll(request, null).Result; // Assert Assert.AreEqual(expectedResponse, actual, "Handled exception as expected"); _loggerMock.Verify(m => m.AddErrorLog(expectedLog), Times.Once); } [Test]
public void GetByRangeDate_should_return_responce_from_grpc_client() { // Arrange HolidaysResponse response = new() { Status = new BaseResponse { Code = Code.Success, ErrorMessage = string.Empty } }; response.Data.Add(new HolidayData { Id = 1, CreatedOn = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()), Description = "test", HolidayDate = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()), ToDoDate = Timestamp.FromDateTime(DateTime.MinValue.ToUniversalTime()) }); BaseMock.Response = response; ByDateRangeRequest request = new() { From = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()), To = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime().AddMonths(1)) }; LogData expectedLog = new() { CallSide = nameof(HolidaysController), CallerMethodName = nameof(_holidaysController.GetByRangeDate), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = response }; // Act ObjectResult actual = _holidaysController.GetByRangeDate(request) as ObjectResult; HolidaysResponse actualData = actual.Value as HolidaysResponse; // Assert Assert.AreEqual(200, actual.StatusCode, "Status code as expected"); Assert.AreEqual(response, actualData, "Response data as expected"); _holidaysClientMock.Verify(m => m.GetByDateRange(request, null, null, new CancellationToken()), Times.Once); _loggerMock.Verify(m => m.AddLog(expectedLog), Times.Once); } [Test]
public void GetAll_should_return_all_hoildays_from_db() { // Arrange Empty request = new Empty(); HolidaysResponse expectedResponse = new() { Status = new BaseResponse { Code = Code.Success, ErrorMessage = string.Empty } }; expectedResponse.Data.Add(new HolidayData { Id = _holiday1.Id, CreatedOn = Timestamp.FromDateTime(_holiday1.CreatedOn), Description = _holiday1.Description, HolidayDate = Timestamp.FromDateTime(_holiday1.HolidayDate), ToDoDate = _holiday1.ToDoDate.HasValue ? Timestamp.FromDateTime(_holiday1.ToDoDate.Value): Timestamp.FromDateTime(DateTime.MinValue.ToUniversalTime()) }); expectedResponse.Data.Add(new HolidayData { Id = _holiday2.Id, CreatedOn = Timestamp.FromDateTime(_holiday2.CreatedOn), Description = _holiday2.Description, HolidayDate = Timestamp.FromDateTime(_holiday2.HolidayDate), ToDoDate = _holiday2.ToDoDate.HasValue ? Timestamp.FromDateTime(_holiday2.ToDoDate.Value) : Timestamp.FromDateTime(DateTime.MinValue.ToUniversalTime()) }); LogData expectedLog = new() { CallSide = nameof(HolidaysService), CallerMethodName = nameof(_holidaysService.GetAll), CreatedOn = _dateTimeUtil.GetCurrentDateTime(), Request = request, Response = expectedResponse }; // Act HolidaysResponse actual = _holidaysService.GetAll(request, null).Result; // Assert Assert.AreEqual(expectedResponse, actual, "Returned holidays as expected"); _loggerMock.Verify(m => m.AddLog(expectedLog), Times.Once); } [Test]