public void GetCaseByRecordIdCallsTheCreateRequestAuditUseCaseWithCorrectValuesWhenAuditingIsEnabled()
        {
            var getCaseNotesRequest = new GetCaseNotesRequest()
            {
                AuditingEnabled = true,
                UserId          = _faker.Person.Email,
                Id         = "tyut67t89t876t",
                ResidentId = "4"
            };

            var auditRequest = new CreateRequestAuditRequest()
            {
                ActionName = "view_case_note",
                UserName   = getCaseNotesRequest.UserId,
                Metadata   = new Dictionary <string, object>()
                {
                    { "residentId", getCaseNotesRequest.ResidentId },
                    { "casenoteId", getCaseNotesRequest.Id }
                }
            };

            _mockCreateRequestAuditUseCase.Setup(x => x.Execute(auditRequest)).Verifiable();

            _caseController.GetCaseByRecordId(getCaseNotesRequest);

            _mockCreateRequestAuditUseCase.Verify(x => x.Execute(It.Is <CreateRequestAuditRequest>(
                                                                     x => x.ActionName == auditRequest.ActionName &&
                                                                     x.UserName == auditRequest.UserName &&
                                                                     JsonConvert.SerializeObject(x.Metadata) == JsonConvert.SerializeObject(auditRequest.Metadata)
                                                                     )), Times.Once);
        }
Example #2
0
        public IActionResult GetCaseByRecordId([FromQuery] GetCaseNotesRequest request)
        {
            if (request.AuditingEnabled && !string.IsNullOrEmpty(request.UserId) && !string.IsNullOrEmpty(request.ResidentId))
            {
                var auditRequest = new CreateRequestAuditRequest()
                {
                    ActionName = "view_case_note",
                    UserName   = request.UserId,
                    Metadata   = new Dictionary <string, object>()
                    {
                        { "residentId", request.ResidentId },
                        { "casenoteId", request.Id }
                    }
                };

                _createRequestAuditUseCase.Execute(auditRequest);
            }

            var caseRecord = _caseRecordsUseCase.Execute(request.Id);

            if (caseRecord == null)
            {
                return(NotFound("Document Not Found"));
            }

            return(Ok(caseRecord));
        }
        public void GetCaseByRecordIdCallsTheCaseRecordsUseCaseWhenOnlyIdIsProvidedToEnsureBackwardsCompatibility()
        {
            var getCaseNotesRequest = new GetCaseNotesRequest()
            {
                Id = "tyut67t89t876t"
            };

            _caseController.GetCaseByRecordId(getCaseNotesRequest);

            _mockProcessDataUseCase.Verify(x => x.Execute(It.IsAny <string>()));
        }
Example #4
0
        public void GetCaseNoteByIdThrowsExceptionWithMessageWhenIdConversionFails()
        {
            var request = new GetCaseNotesRequest {
                Id = "not a number"
            };

            _mockCaseNotesUseCase.Setup(x => x.ExecuteGetById(It.IsAny <string>())).Throws(new CaseNoteIdConversionException("$Note id conversion failed for { noteId}"));

            var response = _classUnderTest.GetCaseNoteById(request) as ObjectResult;

            response.StatusCode.Should().Be(400);
        }
Example #5
0
        public void GetCaseNotesByNoteIdReturns404WhenNoMatchingCaseNoteId()
        {
            var request = new GetCaseNotesRequest {
                Id = "1"
            };

            _mockCaseNotesUseCase.Setup(x => x.ExecuteGetById(It.IsAny <string>()))
            .Throws(new CaseNoteNotFoundException());

            var response = _classUnderTest.GetCaseNoteById(request) as StatusCodeResult;

            response.StatusCode.Should().Be(404);
        }
Example #6
0
        public void GetCaseNoteByIdReturns400WhenUSeCaseThrowsCaseNoteIdConversionException()
        {
            var request = new GetCaseNotesRequest {
                Id = "1"
            };

            _mockCaseNotesUseCase.Setup(x => x.ExecuteGetById(request.Id)).Throws(new CaseNoteIdConversionException($"Note id conversion failed for {request.Id}"));

            var response = _classUnderTest.GetCaseNoteById(request) as ObjectResult;

            response.StatusCode.Should().Be(400);
            response.Value.Should().Be($"Note id conversion failed for {request.Id}");
        }
Example #7
0
        public void GettingASingleCaseNoteByNoteIdReturns200WhenSuccessful()
        {
            var request = new GetCaseNotesRequest {
                Id = "1"
            };
            var note = _fixture.Create <CaseNoteResponse>();

            _mockCaseNotesUseCase.Setup(x => x.ExecuteGetById(It.IsAny <string>())).Returns(note);

            var response = _classUnderTest.GetCaseNoteById(request) as ObjectResult;

            response?.StatusCode.Should().Be(200);
            response?.Value.Should().BeEquivalentTo(note);
        }
        public void GetCaseByRecordIdDoesNotCallTheCreateRequestAuditUseCaseWhenAuditingIsEnabledIsFalse()
        {
            var request = new GetCaseNotesRequest()
            {
                AuditingEnabled = false,
                UserId          = _faker.Person.Email,
                Id         = "tyut67t89t876t",
                ResidentId = "4"
            };

            _caseController.GetCaseByRecordId(request);

            _mockCreateRequestAuditUseCase.Verify(x => x.Execute(It.IsAny <CreateRequestAuditRequest>()), Times.Never);
        }
        public void GetCaseByRecordIdCallsTheCreateRequestAuditUseCaseWhenAuditingIsEnabledIsTrueAndUserIdAndResidentIdAreProvided()
        {
            var getCaseNotesRequest = new GetCaseNotesRequest()
            {
                AuditingEnabled = true,
                UserId          = _faker.Person.Email,
                Id         = "tyut67t89t876t",
                ResidentId = "4"
            };

            _caseController.GetCaseByRecordId(getCaseNotesRequest);

            _mockCreateRequestAuditUseCase.Verify(x => x.Execute(It.IsAny <CreateRequestAuditRequest>()));
        }
 public IActionResult GetCaseNoteById([FromQuery] GetCaseNotesRequest request)
 {
     try
     {
         return(Ok(_caseNotesUseCase.ExecuteGetById(request.Id)));
     }
     catch (CaseNoteIdConversionException ex)
     {
         return(BadRequest(ex.Message));
     }
     catch (CaseNoteNotFoundException)
     {
         return(NotFound());
     }
 }
 public void SetUp()
 {
     _request = new GetCaseNotesRequest();
 }