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"); }
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"); }
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)); }
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); }