public NrlsMaintain(IOptionsSnapshot <ApiSetting> nrlsApiSetting, IFhirMaintain fhirMaintain, IFhirSearch fhirSearch, ISdsService sdsService, IFhirValidation fhirValidation) : base(nrlsApiSetting, "NrlsApiSetting")
 {
     _fhirMaintain   = fhirMaintain;
     _sdsService     = sdsService;
     _fhirSearch     = fhirSearch;
     _fhirValidation = fhirValidation;
 }
 public SpineAuthorizationMiddleware(RequestDelegate next, IOptions <SpineSetting> spineSettings, ISdsService sdsService, INrlsValidation nrlsValidation)
 {
     _next           = next;
     _spineSettings  = spineSettings.Value;
     _sdsService     = sdsService;
     _nrlsValidation = nrlsValidation;
 }
コード例 #3
0
        public SpineAuthorizationTests()
        {
            var spineSettings = new SpineSetting
            {
                Asid = "999"
            };

            var spineSettingsMock = new Mock <IOptions <SpineSetting> >();

            spineSettingsMock.Setup(op => op.Value).Returns(spineSettings);

            var nrlsSettingsMock = new Mock <IOptionsSnapshot <NrlsApiSetting> >();

            nrlsSettingsMock.Setup(op => op.Get(It.IsAny <string>())).Returns(AppSettings.NrlsApiSettings);


            var nrlsValidationMock = new Mock <INrlsValidation>();

            nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Read), It.IsAny <string>())).Returns(new Response(true));
            nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Write), It.IsAny <string>())).Returns(new Response());
            nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Write), It.Is <string>(s => s.Contains("-for-patch")))).Returns(new Response(true));

            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "000"))).Returns(SdsViewModels.SdsAsid000);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "20000000018"))).Returns(SdsViewModels.SdsAsid20000000018);

            _sdsService     = sdsMock.Object;
            _spineSettings  = spineSettingsMock.Object;
            _nrlsSettings   = nrlsSettingsMock.Object;
            _nrlsValidation = nrlsValidationMock.Object;
        }
 public DocumentsServices(IOptions <ExternalApiSetting> externalApiSetting, IOptions <ApiSetting> apiSetting, ISdsService sdsService, IFhirConnector fhirConnector)
 {
     _spineSettings = externalApiSetting.Value;
     _apiSettings   = apiSetting.Value;
     _sdsService    = sdsService;
     _fhirConnector = fhirConnector;
 }
コード例 #5
0
 public void Dispose()
 {
     _fhirValidation  = null;
     _fhirSearch      = null;
     _nrlsApiSettings = null;
     _expectedBundle  = null;
     _sdsService      = null;
 }
コード例 #6
0
 public void Dispose()
 {
     _nrlsApiSettings = null;
     _fhirMaintain    = null;
     _fhirSearch      = null;
     _fhirValidation  = null;
     _sdsService      = null;
 }
コード例 #7
0
        public JwtHelperTests()
        {
            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "20000000017"))).Returns(SdsViewModels.SdsAsid20000000017);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>(), null)).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "ORG1"), null)).Returns(SdsViewModels.SdsAsid20000000017);

            _sdsService = sdsMock.Object;
        }
        public SspProxyGateMiddlewareTests()
        {
            var nrlsValidationMock = new Mock <INrlsValidation>();

            nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Read), It.IsAny <string>())).Returns(new Response(true));
            nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Read), It.Is <string>(j => j == "invalid-jwt"))).Returns(new Response());

            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "000"))).Returns(SdsViewModels.SdsAsid000);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "999"))).Returns(SdsViewModels.SdsAsid999);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == SdsViewModels.SdsAsid999.OdsCode), It.Is <string>(x => x == FhirConstants.ReadInteractionId))).Returns(SdsViewModels.SdsAsid000);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == SdsViewModels.SdsAsid888.OdsCode), It.Is <string>(x => x == FhirConstants.ReadInteractionId))).Returns(delegate { return(null); });
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == SdsViewModels.SdsAsid888.OdsCode), It.Is <string>(x => x == "valid-interaction"))).Returns(SdsViewModels.SdsAsid888);

            _sdsService     = sdsMock.Object;
            _nrlsValidation = nrlsValidationMock.Object;
        }
 public NrlsSearch(IOptionsSnapshot <ApiSetting> apiSetting, IFhirSearch fhirSearch, ISdsService sdsService, IFhirValidation fhirValidation) : base(apiSetting, "NrlsApiSetting")
 {
     _fhirSearch     = fhirSearch;
     _sdsService     = sdsService;
     _fhirValidation = fhirValidation;
 }
コード例 #10
0
 public ClientCertificateCheckMiddleware(RequestDelegate next, ISdsService sdsService)
 {
     _next       = next;
     _sdsService = sdsService;
 }
コード例 #11
0
 public ClientInteractionCacheMiddleware(RequestDelegate next, ISdsService sdsService)
 {
     _next       = next;
     _sdsService = sdsService;
 }
 public JwtHelper(ISdsService sdsService)
 {
     _sdsService = sdsService;
 }
 public SspProxyGateMiddleware(RequestDelegate next, ISdsService sdsService, INrlsValidation nrlsValidation)
 {
     _next           = next;
     _sdsService     = sdsService;
     _nrlsValidation = nrlsValidation;
 }
コード例 #14
0
        public NrlsMaintainTests()
        {
            var opts         = AppSettings.NrlsApiSettings;
            var settingsMock = new Mock <IOptionsSnapshot <NrlsApiSetting> >();

            settingsMock.Setup(op => op.Get(It.IsAny <string>())).Returns(opts);

            var searchOrgList = new List <Organization> {
                FhirOrganizations.Valid_Organization
            };
            var searchOrgBundle   = FhirBundle.GetBundle <Organization>(searchOrgList);
            var emptySearchBundle = FhirBundle.GetBundle <Organization>(new List <Organization>());

            var searchDocBundle = FhirBundle.GetBundle <DocumentReference>(new List <DocumentReference> {
                NrlsPointers.Valid_With_Alt_Custodian
            });
            var searchDocAltBundle = FhirBundle.GetBundle <DocumentReference>(new List <DocumentReference> {
                NrlsPointers.Valid_With_Alt2_Custodian
            });
            var searchDocAltInvalidBundle = FhirBundle.GetBundle <DocumentReference>(new List <DocumentReference> {
                NrlsPointers.Valid_AltCust_With_MasterId_and_RelatesTo_BadStatus
            });
            var searchDocEmptyBundle = FhirBundle.GetBundle <DocumentReference>(new List <DocumentReference>());


            var searchMock = new Mock <IFhirSearch>();

            searchMock.Setup(op => op.Find <Organization>(It.Is <FhirRequest>(request => request.RequestingAsid == "000"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchOrgBundle));
            searchMock.Setup(op => op.Find <Organization>(It.Is <FhirRequest>(request => request.RequestingAsid == "001"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchOrgBundle));
            searchMock.Setup(op => op.Find <Organization>(It.Is <FhirRequest>(request => request.RequestingAsid == "002"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => emptySearchBundle));

            searchMock.Setup(op => op.Find <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "000"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchDocBundle));
            searchMock.Setup(op => op.Find <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "001"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchDocAltBundle));
            searchMock.Setup(op => op.Find <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "002"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchDocEmptyBundle));
            searchMock.Setup(op => op.Find <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "003"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchDocAltInvalidBundle));
            searchMock.Setup(op => op.Find <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "patientmismatch"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchDocAltInvalidBundle));

            searchMock.Setup(op => op.Get <DocumentReference>(It.IsAny <FhirRequest>())).Returns(SystemTasks.Task.Run(() => NrlsPointers.Valid_With_Alt_Custodian));
            searchMock.Setup(op => op.Get <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "RelatesToNoRelatedIdentifier"))).Returns(SystemTasks.Task.Run(() => NrlsPointers.Valid_With_Alt_Custodian));
            searchMock.Setup(op => op.Get <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "RelatesToInvalidRelatedIdentifier"))).Returns(SystemTasks.Task.Run(() => NrlsPointers.Valid_AltCustodian_With_MasterId_and_RelatesTo));

            //searchMock.Setup(op => op.GetByMasterId<DocumentReference>(It.Is<FhirRequest>(request => (request.Resource as DocumentReference).MasterIdentifier.Value == "testValueForMaintTest"))).Returns(SystemTasks.Task.Run(() => searchDocBundle as Resource));
            searchMock.Setup(op => op.GetAsBundle <DocumentReference>(It.Is <FhirRequest>(x => x.RequestingAsid == "001"))).Returns(SystemTasks.Task.Run(() => searchDocAltBundle as Bundle));
            searchMock.Setup(op => op.GetAsBundle <DocumentReference>(It.Is <FhirRequest>(x => x.RequestingAsid == "003"))).Returns(SystemTasks.Task.Run(() => searchDocBundle as Bundle));
            searchMock.Setup(op => op.GetByMasterId <DocumentReference>(It.IsAny <FhirRequest>())).Returns(SystemTasks.Task.Run(() => searchDocBundle as Bundle));

            var maintMock = new Mock <IFhirMaintain>();

            maintMock.Setup(op => op.Create <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "000"))).Returns(SystemTasks.Task.Run(() => NrlsPointers.Valid));
            maintMock.Setup(op => op.Create <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "002"))).Returns(SystemTasks.Task.Run(() => (DocumentReference)null));

            maintMock.Setup(op => op.CreateWithUpdate <DocumentReference>(It.IsAny <FhirRequest>(), It.Is <FhirRequest>(request => request.Id == "5ab13f41957d0ad5d93a1339"), It.IsAny <UpdateDefinition <BsonDocument> >())).Returns(SystemTasks.Task.Run(() => (created: NrlsPointers.Valid, updated: true)));
            maintMock.Setup(op => op.CreateWithUpdate <DocumentReference>(It.IsAny <FhirRequest>(), It.Is <FhirRequest>(request => request.Id == "5ab13f41957d0ad5d93a1338"), It.IsAny <UpdateDefinition <BsonDocument> >())).Returns(SystemTasks.Task.Run(() => (created: (DocumentReference)null, updated: true)));
            maintMock.Setup(op => op.CreateWithUpdate <DocumentReference>(It.IsAny <FhirRequest>(), It.Is <FhirRequest>(request => request.Id == "5ab13f41957d0ad5d93a1337"), It.IsAny <UpdateDefinition <BsonDocument> >())).Returns(SystemTasks.Task.Run(() => (created: NrlsPointers.Valid, updated: false)));

            maintMock.Setup(op => op.CreateWithUpdate <DocumentReference>(It.IsAny <FhirRequest>(), It.Is <FhirRequest>(request => request.Id == "5ab13f41957d0ad5d93a1336"), It.IsAny <UpdateDefinition <BsonDocument> >())).ThrowsAsync(new HttpFhirException());


            maintMock.Setup(op => op.Delete <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "003"))).Returns(SystemTasks.Task.Run(() => true));
            maintMock.Setup(op => op.Delete <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "001"))).Returns(SystemTasks.Task.Run(() => false));
            maintMock.Setup(op => op.DeleteConditional <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "003"))).Returns(SystemTasks.Task.Run(() => true));
            maintMock.Setup(op => op.DeleteConditional <DocumentReference>(It.Is <FhirRequest>(request => request.RequestingAsid == "001"))).Returns(SystemTasks.Task.Run(() => false));

            var validationMock = new Mock <IFhirValidation>();

            validationMock.Setup(op => op.ValidPointer(It.Is <DocumentReference>(pointer => pointer.Id == "5ab13f41957d0ad5d93a1339"))).Returns(OperationOutcomes.Ok);
            validationMock.Setup(op => op.ValidPointer(It.Is <DocumentReference>(pointer => pointer.Id == "5affc72bcae33eb8690e5881"))).Returns(OperationOutcomes.Error);

            validationMock.Setup(op => op.GetOrganizationReferenceId(It.IsAny <ResourceReference>())).Returns("TestOrgCode");
            validationMock.Setup(op => op.GetOrganizationReferenceId(It.Is <ResourceReference>(reference => reference.Reference == "https://directory.spineservices.nhs.uk/STU3/Organization/1XR"))).Returns("TestOrgCode");
            validationMock.Setup(op => op.GetOrganizationReferenceId(It.Is <ResourceReference>(reference => reference.Reference == "https://directory.spineservices.nhs.uk/STU3/Organization/error"))).Returns("TestOrgCode2");
            validationMock.Setup(op => op.GetOrganizationReferenceId(It.Is <ResourceReference>(reference => reference.Reference == "https://directory.spineservices.nhs.uk/STU3/Organization/RV99"))).Returns("RV99");
            validationMock.Setup(op => op.GetOrganizationReferenceId(It.Is <ResourceReference>(reference => reference.Reference == "https://directory.spineservices.nhs.uk/STU3/Organization/RV88"))).Returns("RV88");

            validationMock.Setup(op => op.ValidateIdentifierParameter(It.IsAny <string>(), It.IsAny <string>())).Returns(OperationOutcomes.Error);
            validationMock.Setup(op => op.ValidateIdentifierParameter(It.IsAny <string>(), It.Is <string>(p => p == "testsystem|testvalue"))).Returns(delegate { return(null); });

            validationMock.Setup(op => op.ValidatePatientParameter(It.IsAny <string>())).Returns(OperationOutcomes.Error);
            validationMock.Setup(op => op.ValidatePatientParameter(It.Is <string>(p => p == "https://demographics.spineservices.nhs.uk/STU3/Patient/2686033207"))).Returns(delegate { return(null); });

            validationMock.Setup(op => op.GetValidRelatesTo(It.Is <IList <DocumentReference.RelatesToComponent> >(r => r.FirstOrDefault(w => w.Target != null && w.Target.Reference == "reference/id/600009612669​") != null))).Returns((FhirResources.Valid_Single_RelatesToByReference, "relatesTo"));
            validationMock.Setup(op => op.GetValidRelatesTo(It.Is <IList <DocumentReference.RelatesToComponent> >(r => r.FirstOrDefault(w => w.Target != null && w.Target.Identifier != null && w.Target.Identifier.Value == "urn:tag:humber.nhs.uk,2004:cdc:600009612669​") != null))).Returns((FhirResources.Valid_Single_RelatesTo, "relatesTo"));

            validationMock.Setup(op => op.GetValidStatus(It.IsAny <DocumentReferenceStatus>())).Returns(delegate { return(null); });
            validationMock.Setup(op => op.GetValidStatus(It.Is <DocumentReferenceStatus>(x => x == DocumentReferenceStatus.Current))).Returns(DocumentReferenceStatus.Current);

            validationMock.Setup(op => op.GetSubjectReferenceId(It.IsAny <ResourceReference>())).Returns("2686033207");

            validationMock.Setup(op => op.GetReferenceId(It.IsAny <ResourceReference>())).Returns("600009612669");


            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "000"))).Returns(SdsViewModels.SdsAsid000);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "001"))).Returns(SdsViewModels.SdsAsid001);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "003"))).Returns(SdsViewModels.SdsAsid003);


            _nrlsApiSettings = settingsMock.Object;
            _fhirMaintain    = maintMock.Object;
            _fhirSearch      = searchMock.Object;
            _fhirValidation  = validationMock.Object;
            _sdsService      = sdsMock.Object;
        }
 public void Dispose()
 {
     _sdsService     = null;
     _nrlsValidation = null;
 }
コード例 #16
0
        public NrlsSearchTests()
        {
            var validationMock = new Mock <IFhirValidation>();

            validationMock.Setup(op => op.ValidatePatientParameter(It.IsAny <string>())).Returns(delegate { return(null); });

            validationMock.Setup(op => op.ValidateCustodianParameter(It.IsAny <string>())).Returns(delegate { return(null); });
            validationMock.Setup(op => op.ValidateCustodianIdentifierParameter(It.IsAny <string>())).Returns(delegate { return(null); });

            validationMock.Setup(op => op.ValidSummaryParameter(It.Is <string>(p => p == "notcount"))).Returns(delegate { return(new OperationOutcome()); });
            validationMock.Setup(op => op.ValidSummaryParameter(It.Is <string>(p => p == "count"))).Returns(delegate { return(null); });

            validationMock.Setup(op => op.GetOrganizationParameterId(It.Is <string>(p => p == "https://directory.spineservices.nhs.uk/STU3/Organization/TestOrgCode"))).Returns("TestOrgCode");
            validationMock.Setup(op => op.GetOrganizationParameterIdentifierId(It.Is <string>(p => p == "https://fhir.nhs.uk/Id/ods-organization-code|TestOrgCode"))).Returns("TestOrgCode");

            validationMock.Setup(op => op.GetOrganizationParameterIdentifierId(It.Is <string>(p => p == "https://fhir.nhs.uk/Id/ods-organization-code|TestOrgCode"))).Returns("TestOrgCode");

            validationMock.Setup(op => op.GetSubjectReferenceParameterId(It.IsAny <string>())).Returns("1445545101");


            _fhirValidation = validationMock.Object;

            var searchPointer     = NrlsPointers.Valid;
            var searchPointerList = new List <DocumentReference> {
                searchPointer
            };
            var searchBundle = FhirBundle.GetBundle <DocumentReference>(searchPointerList);

            var searchMock = new Mock <IFhirSearch>();

            searchMock.Setup(op => op.GetAsBundle <DocumentReference>(It.IsAny <FhirRequest>())).Returns(SystemTasks.Task.Run(() => searchBundle));
            searchMock.Setup(op => op.Find <DocumentReference>(It.IsAny <FhirRequest>(), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => searchBundle));


            var orgSearchBundle = FhirBundle.GetBundle <Organization>(new List <Organization> {
                FhirOrganizations.Valid_Organization
            });

            searchMock.Setup(op => op.Find <Organization>(It.IsAny <FhirRequest>(), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => orgSearchBundle));

            var patientSearchBundle = FhirBundle.GetBundle <Patient>(new List <Patient> {
                FhirPatients.Valid_Patient
            });

            searchMock.Setup(op => op.Find <Patient>(It.IsAny <FhirRequest>(), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => patientSearchBundle));

            var patientSearchEmptyBundle = FhirBundle.GetBundle <Patient>(new List <Patient>());

            searchMock.Setup(op => op.Find <Patient>(It.Is <FhirRequest>(x => x.Id == "invalid-patient-resource-id"), It.IsAny <bool>())).Returns(SystemTasks.Task.Run(() => patientSearchEmptyBundle));

            _fhirSearch = searchMock.Object;


            var opts = new NrlsApiSetting
            {
                BaseUrl               = "https://baseurl.com/",
                DefaultPort           = "80",
                ProfileUrl            = "https://profileurl.com",
                Secure                = false,
                SecurePort            = "443",
                SupportedContentTypes = new List <string> {
                    "application/fhir+json"
                },
                SupportedResources = new List <string> {
                    "DocumentReference"
                }
            };

            var mock = new Mock <IOptionsSnapshot <NrlsApiSetting> >();

            mock.Setup(op => op.Get(It.IsAny <string>())).Returns(opts);

            _nrlsApiSettings = mock.Object;

            _expectedBundle = new Bundle
            {
                Id   = "b54e3ad5-04b5-4f8f-8dbd-0e41d2465b5c",
                Meta = new Meta
                {
                    LastUpdated = new DateTimeOffset(new DateTime(2018, 3, 1, 0, 0, 0, DateTimeKind.Utc)),
                    VersionId   = "b54e3ad5-04b5-4f8f-8dbd-0e41d2465b5c"
                },
                Type  = Bundle.BundleType.Searchset,
                Total = 1,
                Link  = new List <Bundle.LinkComponent>
                {
                    new Bundle.LinkComponent
                    {
                        Relation = "_self",
                        Url      = "TestLink"
                    }
                },
                Entry = new List <Bundle.EntryComponent>
                {
                    new Bundle.EntryComponent
                    {
                        Search = new Bundle.SearchComponent
                        {
                            Mode = Bundle.SearchEntryMode.Match
                        },
                        FullUrl  = $"ResourceLink",
                        Resource = new DocumentReference
                        {
                            Id   = "5ab13f41957d0ad5d93a1339",
                            Meta = new Meta
                            {
                                Profile = new List <string> {
                                    "https://fhir.nhs.uk/STU3/StructureDefinition/NRL-DocumentReference-1"
                                },
                                LastUpdated = new DateTimeOffset(new DateTime(2018, 3, 1, 0, 0, 0, DateTimeKind.Utc)),
                                VersionId   = "1"
                            },
                            Status = DocumentReferenceStatus.Current,
                            Type   = new CodeableConcept
                            {
                                Coding = new List <Coding>
                                {
                                    new Coding
                                    {
                                        System  = "http://snomed.info/sct",
                                        Code    = "736253002",
                                        Display = "Mental health crisis plan (record artifact)"
                                    }
                                }
                            },
                            Subject = new ResourceReference
                            {
                                Reference = "https://demographics.spineservices.nhs.uk/STU3/Patient/2686033207"
                            },
                            Indexed = new DateTime(2005, 12, 24, 9, 43, 41),
                            Author  = new List <ResourceReference>
                            {
                                new ResourceReference
                                {
                                    Reference = "https://directory.spineservices.nhs.uk/STU3/Organization/1XR"
                                }
                            },
                            Custodian = new ResourceReference
                            {
                                Reference = "https://directory.spineservices.nhs.uk/STU3/Organization/1XR"
                            },
                            Content = new List <DocumentReference.ContentComponent>
                            {
                                new DocumentReference.ContentComponent
                                {
                                    Attachment = new Attachment
                                    {
                                        ContentType = "application/pdf",
                                        Url         = "http://example.org/xds/mhd/Binary/07a6483f-732b-461e-86b6-edb665c45510.pdf",
                                        Title       = "Mental health Care Plan Report",
                                        Creation    = "2016-03-08T15:26:00+00:00"
                                    }
                                }
                            },
                            Context = new DocumentReference.ContextComponent
                            {
                                PracticeSetting = new CodeableConcept
                                {
                                    Coding = new List <Coding>
                                    {
                                        new Coding
                                        {
                                            System  = "http://snomed.info/sct",
                                            Code    = "708168004",
                                            Display = "Mental health service"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "000"))).Returns(SdsViewModels.SdsAsid000);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "003"))).Returns(SdsViewModels.SdsAsid003);
            //sdsMock.Setup(op => op.GetFor(It.IsAny<string>(), null)).Returns((SdsViewModel)null);

            _sdsService = sdsMock.Object;
        }
コード例 #17
0
 public void Dispose()
 {
     _spineSettings = null;
     _nrlsSettings  = null;
     _sdsService    = null;
 }
コード例 #18
0
 public void Dispose()
 {
     _sdsService = null;
 }
コード例 #19
0
        public DocumentsServiceTests()
        {
            var extApiOpts = new ExternalApiSetting
            {
                NrlsServerUrl = new Uri("http://nrl-server.com"),

                NrlsSecureServerUrl = new Uri("http://nrl-secure-server.com"),

                NrlsUseSecure = false,

                NrlsDefaultprofile = "nrl-profile",

                SspServerUrl = new Uri("http://ssp-server.com"),

                SspSecureServerUrl = new Uri("http://ssp-secure-server.com"),

                SspUseSecure = false,

                SspSslThumbprint = "ssp-thumbprint",

                PdsServerUrl = new Uri("http://ssp-server.com"),

                PdsSecureServerUrl = new Uri("http://ssp-secure-server.com"),

                PdsUseSecure = false,

                PdsDefaultprofile = "pds-profile",

                OdsServerUrl = new Uri("http://ssp-server.com"),

                OdsSecureServerUrl = new Uri("http://ssp-secure-server.com"),

                OdsUseSecure = false,

                OdsDefaultprofile = "ods-profile",

                SpineAsid = "9999999999",

                SpineThumbprint = "SpineThumbprint",
            };

            var apiOpts = new ApiSetting
            {
                BaseUrl               = "://localhost",
                Secure                = false,
                SecureOnly            = false,
                DefaultPort           = "55448",
                SecurePort            = "55443",
                SupportedContentTypes = new List <string> {
                    "application/fhir+xml", "application/fhir+json"
                }
            };

            var extApiMock = new Mock <IOptions <ExternalApiSetting> >();

            extApiMock.Setup(op => op.Value).Returns(extApiOpts);

            var apiMock = new Mock <IOptions <ApiSetting> >();

            apiMock.Setup(op => op.Value).Returns(apiOpts);

            var sdsMock = new Mock <ISdsService>();

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "20000000017"))).Returns(SdsViewModels.SdsAsid20000000017);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002);

            sdsMock.Setup(op => op.GetFor(It.IsAny <string>(), null)).Returns((SdsViewModel)null);
            sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "X27"), It.IsAny <string>())).Returns(SdsViewModels.SdsAsid888);

            var resource = new Binary
            {
                ContentType = "application/pdf",
                Content     = Encoding.UTF8.GetBytes("pdf.bytes")
            };

            var fhirConnectorMock = new Mock <IFhirConnector>();

            fhirConnectorMock.Setup(op => op.RequestOneFhir <CommandRequest, Resource>(It.IsAny <CommandRequest>())).Returns(SystemTasks.Task.Run(() => resource as Resource));

            _extApiMock        = extApiMock.Object;
            _apiMock           = apiMock.Object;
            _sdsMock           = sdsMock.Object;
            _fhirConnectorMock = fhirConnectorMock.Object;
        }