コード例 #1
0
        public async Task <ActionResult <LegalCaseWithBillableActivitiesDTO> > GetLegalCaseByIdWithDetailsAsync([FromRoute] int id)
        {
            var legalCaseWithDetails = await _genericRepository.GetOneByWithRelatedDataAsync(lc => lc.Id == id,
                                                                                             lc => lc.BillableActivities);

            if (legalCaseWithDetails is null)
            {
                var logData = new
                {
                    Id           = id,
                    Action       = ControllerContext.ActionDescriptor.DisplayName,
                    Verb         = HttpContext.Request.Method,
                    EndpointPath = HttpContext.Request.Path.Value,
                    User         = HttpContext.User.Claims.First(usr => usr.Type == "preferred_username").Value
                };
                _logger.LogInformation("No LegalCases were found for Id {id}. Data: {@logData}", id, logData);

                _logger.LogError($"LegalCasesController.GetLegalCaseByIdWithDetailsAsync: No data was found for id {id}");
                return(NotFound("No data was found"));
            }

            LegalCaseWithBillableActivitiesDTO caseWithDetailsDTO = _mapper.Map <LegalCaseWithBillableActivitiesDTO>(legalCaseWithDetails);

            return(Ok(caseWithDetailsDTO));
        }
コード例 #2
0
        public async void GetLegalCaseByIdWithDetailsAsync_Returns_LegalCaseWithDetails(int id)
        {
            //get expected LegalCase
            LegalCase expectedLegalCase = _legalCases.Where(lc => lc.Id == id).First();
            LegalCaseWithBillableActivitiesDTO expectedCaseDTO = _mapper.Map <LegalCaseWithBillableActivitiesDTO>(expectedLegalCase);

            //configure the Repo return
            _mockRepository.Setup(repo => repo.GetOneByWithRelatedDataAsync(lc => lc.Id == id, lc => lc.BillableActivities)).ReturnsAsync(expectedLegalCase);

            //call the controller method
            var actionResult = await _controller.GetLegalCaseByIdWithDetailsAsync(id);

            //Get the LegalCase from the ActionResult returned
            var okObjectResult = Assert.IsType <OkObjectResult>(actionResult.Result);
            LegalCaseWithBillableActivitiesDTO actualLegalCaseDTO = okObjectResult.Value as LegalCaseWithBillableActivitiesDTO;
            int?statusCode = okObjectResult.StatusCode;

            //Assertions
            Assert.Equal(200, statusCode);

            Assert.IsType <LegalCaseWithBillableActivitiesDTO>(actualLegalCaseDTO);

            //use FluentAssertions to compare Reference types
            actualLegalCaseDTO.Should().BeEquivalentTo(expectedCaseDTO, options => options.ComparingByMembers <LegalCaseWithBillableActivitiesDTO>());
        }