public void SetUp()
 {
     _mockCaseStatusGateway = new Mock <ICaseStatusGateway>();
     _mockDatabaseGateway   = new Mock <IDatabaseGateway>();
     _caseStatusesUseCase   = new CaseStatusesUseCase(_mockCaseStatusGateway.Object, _mockDatabaseGateway.Object);
     _request             = CaseStatusHelper.CreateCaseStatusAnswerRequest();
     _lacCaseStatusDomain = CaseStatusHelper.CreateCaseStatus(type: "LAC").ToDomain();
     _worker        = TestHelpers.CreateWorker();
     _lacCaseStatus = TestHelpers.CreateCaseStatus(type: "LAC");
 }
Exemple #2
0
 public void SetUp()
 {
     _answers = CaseStatusHelper.CreateCaseStatusRequestAnswers(min: 1, max: 1);
     _mockCaseStatusGateway = new Mock <ICaseStatusGateway>();
     _mockDatabaseGateway   = new Mock <IDatabaseGateway>();
     _caseStatusesUseCase   = new CaseStatusesUseCase(_mockCaseStatusGateway.Object, _mockDatabaseGateway.Object);
     _request            = CaseStatusHelper.CreateCaseStatusAnswerRequest(answers: _answers);
     _cpCaseStatusDomain = CaseStatusHelper.CreateCaseStatus(type: "CP").ToDomain();
     _worker             = TestHelpers.CreateWorker();
     _cpCaseStatus       = TestHelpers.CreateCaseStatus(type: "CP");
 }
Exemple #3
0
        public void SetUp()
        {
            _mockCaseStatusGateway = new Mock <ICaseStatusGateway>();
            _mockDatabaseGateway   = new Mock <IDatabaseGateway>();
            _caseStatusesUseCase   = new CaseStatusesUseCase(_mockCaseStatusGateway.Object, _mockDatabaseGateway.Object);

            _request = new ListCaseStatusesRequest()
            {
                PersonId = 123, IncludeClosedCases = false
            };
            _person     = TestHelpers.CreatePerson();
            _caseStatus = TestHelpers.CreateCaseStatus(_person.Id);
            _mockDatabaseGateway.Setup(x => x.GetPersonByMosaicId(It.IsAny <long>())).Returns(_person);
        }
        public void WhenTypeIsLACAndRequestedEndDateIsOnActiveCaseStatusAnswerStartDateItCallsTheGateway()
        {
            _caseStatus = TestHelpers.CreateCaseStatus(resident: _resident, startDate: new DateTime(2021, 11, 3), type: "LAC");
            _updateCaseStatusRequest = TestHelpers.CreateUpdateCaseStatusRequest(caseStatusId: _caseStatus.Id, email: _worker.Email, endDate: new DateTime(2021, 11, 3), min: 1, max: 1);

            _mockCaseStatusGateway
            .Setup(x => x.GetCasesStatusByCaseStatusId(_caseStatus.Id))
            .Returns(_caseStatus.ToDomain());
            _mockCaseStatusGateway.Setup(x => x.UpdateCaseStatus(_updateCaseStatusRequest)).Returns(new DomainCaseStatus());

            _caseStatusesUseCase.ExecuteUpdate(_updateCaseStatusRequest);

            _mockCaseStatusGateway.Verify(x => x.UpdateCaseStatus(_updateCaseStatusRequest));
        }
Exemple #5
0
        public void WhenTypeIsCINAndRequestedEndDateIsBeforeCaseStatusStartDateInvalidEndDateExceptionThrown()
        {
            _caseStatus = TestHelpers.CreateCaseStatus(resident: _resident, startDate: new DateTime(2021, 11, 3), type: "CIN");
            _updateCaseStatusRequest = TestHelpers.CreateUpdateCaseStatusRequest(caseStatusId: _caseStatus.Id, email: _worker.Email, endDate: new DateTime(2021, 11, 1));

            _mockCaseStatusGateway
            .Setup(x => x.GetCasesStatusByCaseStatusId(_caseStatus.Id))
            .Returns(_caseStatus.ToDomain());

            Action act = () => _caseStatusesUseCase.ExecuteUpdate(_updateCaseStatusRequest);

            act.Should().Throw <InvalidEndDateException>()
            .WithMessage($"requested end date of {_updateCaseStatusRequest.EndDate?.ToString("O")} " +
                         $"is before the start date of {_caseStatus.StartDate:O}");
        }
        public void WhenTypeIsLACandTheProvidedEndDateIsValidAndThereAreScheduledAnswersItCallsTheGateway()
        {
            var activeAnswers    = TestHelpers.CreateCaseStatusAnswers(min: 2, max: 2, startDate: new DateTime(2000, 01, 11), endDate: new DateTime(2040, 02, 01));
            var scheduledAnswers = TestHelpers.CreateCaseStatusAnswers(min: 2, max: 2, startDate: new DateTime(2040, 02, 01));

            _caseStatus         = TestHelpers.CreateCaseStatus(resident: _resident, startDate: new DateTime(2000, 01, 11), type: "LAC");
            _caseStatus.Answers = new List <CaseStatusAnswer>();
            _caseStatus.Answers.AddRange(activeAnswers);
            _caseStatus.Answers.AddRange(scheduledAnswers);

            _updateCaseStatusRequest = TestHelpers.CreateUpdateCaseStatusRequest(caseStatusId: _caseStatus.Id, email: _worker.Email, endDate: new DateTime(2000, 01, 11), min: 1, max: 1);

            _mockCaseStatusGateway.Setup(x => x.GetCasesStatusByCaseStatusId(_caseStatus.Id)).Returns(_caseStatus.ToDomain());
            _mockCaseStatusGateway.Setup(x => x.UpdateCaseStatus(It.IsAny <UpdateCaseStatusRequest>())).Returns(new DomainCaseStatus());

            _caseStatusesUseCase.ExecuteUpdate(_updateCaseStatusRequest);

            _mockCaseStatusGateway.Verify(x => x.UpdateCaseStatus(_updateCaseStatusRequest));
        }
        public void WhenTypeIsLACAndProvidedEndIsBeforeTheCurrentlyActiveAnswersStartDateItThrowsInvalidEndDateException()
        {
            _caseStatus         = TestHelpers.CreateCaseStatus(resident: _resident, startDate: DateTime.Now.AddDays(1), type: "LAC");
            _caseStatus.Answers = new List <CaseStatusAnswer>();
            _caseStatus.Answers.AddRange(TestHelpers.CreateCaseStatusAnswers(min: 2, max: 2, startDate: new DateTime(2021, 11, 3)));

            _updateCaseStatusRequest = TestHelpers.CreateUpdateCaseStatusRequest(caseStatusId: _caseStatus.Id, email: _worker.Email, endDate: new DateTime(2021, 11, 1), min: 1, max: 1);

            _mockCaseStatusGateway
            .Setup(x => x.GetCasesStatusByCaseStatusId(_caseStatus.Id))
            .Returns(_caseStatus.ToDomain());

            _mockCaseStatusGateway.Setup(x => x.UpdateCaseStatus(It.IsAny <UpdateCaseStatusRequest>())).Returns(new DomainCaseStatus());

            Action act = () => _caseStatusesUseCase.ExecuteUpdate(_updateCaseStatusRequest);

            act.Should().Throw <InvalidEndDateException>()
            .WithMessage("requested end date is before the start date of the currently active answer");
        }
        public void SetUp()
        {
            _mockCaseStatusGateway = new Mock <ICaseStatusGateway>();
            _mockDatabaseGateway   = new Mock <IDatabaseGateway>();
            _caseStatusesUseCase   = new CaseStatusesUseCase(_mockCaseStatusGateway.Object, _mockDatabaseGateway.Object);

            _resident   = TestHelpers.CreatePerson(ageContext: "C");
            _worker     = TestHelpers.CreateWorker();
            _caseStatus = TestHelpers.CreateCaseStatus(resident: _resident);
            _updateCaseStatusRequest = TestHelpers.CreateUpdateCaseStatusRequest(caseStatusId: _caseStatus.Id, email: _worker.Email);
            _updatedCaseStatus       = TestHelpers.CreateCaseStatus(_resident.Id, _caseStatus.Notes,
                                                                    _caseStatus.StartDate, _updateCaseStatusRequest.EndDate, resident: _resident);

            _mockCaseStatusGateway
            .Setup(x => x.GetCasesStatusByCaseStatusId(_caseStatus.Id))
            .Returns(_caseStatus.ToDomain());

            _mockCaseStatusGateway
            .Setup(x => x.UpdateCaseStatus(_updateCaseStatusRequest))
            .Returns(_updatedCaseStatus.ToDomain());

            _mockDatabaseGateway.Setup(x => x.GetPersonByMosaicId(_resident.Id)).Returns(_resident);
            _mockDatabaseGateway.Setup(x => x.GetWorkerByEmail(_worker.Email)).Returns(_worker);
        }