示例#1
0
 public IActionResult GetByPersonIdAndDateRange([FromQuery] ByPersonIdAndDateRangeRequest request)
 {
     try
     {
         DayOffsResponse response = _dayOffsClient.GetByPersonIdAndDateRange(request);
         LogData         logData  = new()
         {
             CallSide         = nameof(DayOffsController),
             CallerMethodName = nameof(GetByPersonIdAndDateRange),
             CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
             Request          = request,
             Response         = response
         };
         _logger.AddLog(logData);
         return(Ok(response));
     }
     catch (Exception ex)
     {
         LogData logData = new()
         {
             CallSide         = nameof(DayOffsController),
             CallerMethodName = nameof(GetByPersonIdAndDateRange),
             CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
             Request          = request,
             Response         = ex
         };
         _logger.AddErrorLog(logData);
         return(InternalServerError());
     }
 }
示例#2
0
        public void GetByPersonId_should_handle_exception()
        {
            // Arrange
            BaseMock.ShouldThrowException = true;
            ByPersonIdRequest request = new()
            {
                PersonId = _dayOff1.PersonId
            };

            DayOffsResponse expectedResponse = new()
            {
                Status = new BaseResponse {
                    Code = Code.UnknownError, ErrorMessage = "An error occured while loading day offs data"
                }
            };

            LogData expectedLog = new()
            {
                CallSide         = nameof(DayOffsService),
                CallerMethodName = nameof(_dayOffsService.GetByPersonId),
                CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                Request          = request,
                Response         = new Exception("Test exception")
            };

            // Act
            DayOffsResponse actual = _dayOffsService.GetByPersonId(request, null).Result;

            // Assert
            Assert.AreEqual(expectedResponse, actual, "Response as expected");
            _loggerMock.Verify(mocks => mocks.AddErrorLog(expectedLog), Times.Once);
        }

        [Test]
示例#3
0
        public void GetByPersonIdAndDateRange_should_return_response_from_grpc_client()
        {
            // Arrange
            ByPersonIdAndDateRangeRequest request = new()
            {
                Person = new ByPersonIdRequest
                {
                    PersonId = 1
                },
                Range = new ByDateRangeRequest
                {
                    From = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()),
                    To   = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime().AddDays(10))
                }
            };

            DayOffsResponse response = new()
            {
                Status = new BaseResponse
                {
                    Code         = Code.Success,
                    ErrorMessage = string.Empty
                }
            };

            response.Data.Add(new DayOffData
            {
                IsPaid     = true,
                PersonId   = 1,
                CreatedOn  = Timestamp.FromDateTime(_dateTimeUtil.GetCurrentDateTime()),
                DayOffType = 1
            });
            BaseMock.Response = response;
            LogData expectedLog = new()
            {
                CallSide         = nameof(DayOffsController),
                CallerMethodName = nameof(_dayOffsController.GetByPersonIdAndDateRange),
                CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                Request          = request,
                Response         = response
            };

            // Act
            ObjectResult    actual     = _dayOffsController.GetByPersonIdAndDateRange(request) as ObjectResult;
            DayOffsResponse actualData = actual.Value as DayOffsResponse;

            // Assert
            Assert.AreEqual(200, actual.StatusCode, "StatusCode as expected");
            Assert.AreEqual(response, actualData, "Response data as expected");
            _loggerMock.Verify(m => m.AddLog(expectedLog), Times.Once);
            _dayOffsClientMock.Verify(m => m.GetByPersonIdAndDateRange(request, null, null, new CancellationToken()), Times.Once);
        }

        [Test]
示例#4
0
        public void GetByPersonId_should_return_all_day_offs_by_specified_person()
        {
            // Arrange
            ByPersonIdRequest request = new()
            {
                PersonId = _dayOff1.PersonId
            };

            DayOffsResponse expectedResponse = new()
            {
                Status = new BaseResponse {
                    Code = Code.Success, ErrorMessage = string.Empty
                }
            };

            expectedResponse.Data.Add(new DayOffData
            {
                Id         = _dayOff1.Id,
                CreatedOn  = Timestamp.FromDateTime(_dayOff1.CreatedOn),
                DayOffType = (int)_dayOff1.DayOffType,
                Hours      = _dayOff1.Hours,
                IsPaid     = _dayOff1.IsPaid,
                PersonId   = _dayOff1.PersonId
            });
            expectedResponse.Data.Add(new DayOffData
            {
                Id         = _dayOff2.Id,
                CreatedOn  = Timestamp.FromDateTime(_dayOff2.CreatedOn),
                DayOffType = (int)_dayOff2.DayOffType,
                Hours      = _dayOff2.Hours,
                IsPaid     = _dayOff2.IsPaid,
                PersonId   = _dayOff2.PersonId
            });

            LogData expectedLog = new()
            {
                CallSide         = nameof(DayOffsService),
                CallerMethodName = nameof(_dayOffsService.GetByPersonId),
                CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                Request          = request,
                Response         = expectedResponse
            };

            // Act
            DayOffsResponse actual = _dayOffsService.GetByPersonId(request, null).Result;

            // Assert
            Assert.AreEqual(expectedResponse, actual, "Response as expected");
            _loggerMock.Verify(mocks => mocks.AddLog(expectedLog), Times.Once);
        }

        [Test]