public TreatmentEventMapperTest() { _context = SetupTestContext(); _referenceDataRepository = new ReferenceDataRepository(_context); _adOptionMock.Setup(s => s.CurrentValue).Returns(new AdOptions { ReadOnlyUserGroup = "TestReadOnly" }); var userRepo = new UserRepository(_context, _adOptionMock.Object); var migrationRepo = new Mock <IMigrationRepository>(); migrationRepo.Setup(mr => mr.GetLegacyUserByUsername(It.IsAny <string>())) .Returns((string username) => Task.FromResult(_usernameToLegacyUserDict[username])); migrationRepo.Setup(repo => repo.GetLegacyUserHospitalsByUsername(It.IsAny <string>())) .ReturnsAsync((string username) => new List <MigrationLegacyUserHospital>()); var importLogger = new Mock <IImportLogger>(); _caseManagerImportService = new CaseManagerImportService(userRepo, _referenceDataRepository, migrationRepo.Object, importLogger.Object); _treatmentEventMapper = new TreatmentEventMapper(_caseManagerImportService, _referenceDataRepository); }
public NotificationMapperTest() { _caseManagerImportService .Setup(serv => serv.ImportOrUpdateLegacyUser(It.IsAny <string>(), It.IsAny <PerformContext>(), It.IsAny <int>())) .Returns(() => Task.CompletedTask); _referenceDataRepositoryMock.Setup(repo => repo.GetUserByUsernameAsync(It.IsAny <string>())) .Returns((string username) => Task.FromResult(_usernameToUserDict[username])); _referenceDataRepositoryMock.Setup(repo => repo.GetTbServiceFromHospitalIdAsync(It.IsAny <Guid>())) .Returns((Guid guid) => Task.FromResult(_hospitalToTbServiceCodeDict[guid])); _referenceDataRepositoryMock.Setup(repo => repo.GetAllTbServicesAsync()) .Returns(() => Task.FromResult <IList <TBService> >(new List <TBService> { new TBService { Code = WestonGeneralCode, PHECCode = PhecResult } })); _referenceDataRepositoryMock.Setup(repo => repo.GetAllTreatmentOutcomes()) .ReturnsAsync(ntbs_service.Models.SeedData.TreatmentOutcomes.GetTreatmentOutcomes().ToList); _referenceDataRepositoryMock.Setup(repo => repo.GetTreatmentOutcomeForTypeAndSubType(It.IsAny <TreatmentOutcomeType>(), It.IsAny <TreatmentOutcomeSubType>())) .ReturnsAsync(ntbs_service.Models.SeedData.TreatmentOutcomes.GetTreatmentOutcomes() .FirstOrDefault(o => o.TreatmentOutcomeType == TreatmentOutcomeType.Died && o.TreatmentOutcomeSubType == TreatmentOutcomeSubType.Unknown)); _postcodeService.Setup(service => service.FindPostcodeAsync(It.IsAny <string>())) .ReturnsAsync((string postcode) => new PostcodeLookup { Postcode = postcode.Replace(" ", "").ToUpper() }); // Needs to happen after the mocking, as the constructor uses a method from reference data repo _treatmentEventMapper = new TreatmentEventMapper(_caseManagerImportService.Object, _referenceDataRepositoryMock.Object); _notificationMapper = new NotificationMapper( _migrationRepository, _referenceDataRepositoryMock.Object, _importLoggerMock.Object, _postcodeService.Object, _caseManagerImportService.Object, _treatmentEventMapper); _importValidator = new ImportValidator(_importLoggerMock.Object, _referenceDataRepositoryMock.Object); }