コード例 #1
0
        public void GivenSearchIndicesWithResourceTypeAndCompartmentType_WhenExtracted_ThenCorrectIndicesExtracted(ResourceType resourceType, CompartmentType compartmentType, ReferenceKind referenceKind, string expectedResourceId)
        {
            HashSet <string> compParams = null;

            _compartmentManager.TryGetSearchParams(resourceType.ToString(), compartmentType, out compParams)
            .Returns(x =>
            {
                x[2] = new HashSet <string> {
                    _referenceSearchTestParam.Name, _nonReferenceReferenceSearchTestParam.Name
                };
                return(true);
            });
            var searchIndexEntries = new List <SearchIndexEntry>
            {
                new SearchIndexEntry(_referenceSearchTestParam, new ReferenceSearchValue(referenceKind, _baseUri, CompartmentDefinitionManager.CompartmentTypeToResourceType(compartmentType.ToString()).ToString(), expectedResourceId)),
                new SearchIndexEntry(_nonReferenceReferenceSearchTestParam, new StringSearchValue("aadsdas")),
            };
            CompartmentIndices compartmentIndices = _compartmentIndexer.Extract(resourceType.ToString(), searchIndexEntries);

            Assert.Collection(GetResourceIdsForCompartmentType(compartmentType, compartmentIndices), r => string.Equals(expectedResourceId, r, StringComparison.OrdinalIgnoreCase));
        }
コード例 #2
0
        public void GivenSearchIndicesWithResourceTypeAndCompartmentType_WhenExtracted_ThenCorrectIndicesExtracted(ResourceType resourceType, CompartmentType compartmentType, string resourceId)
        {
            var compartmentManager = Substitute.For <ICompartmentDefinitionManager>();
            var compartmentIndexer = new CompartmentIndexer(compartmentManager);

            HashSet <string> compParams = null;

            compartmentManager.TryGetSearchParams(resourceType, compartmentType, out compParams)
            .Returns(x =>
            {
                x[2] = new HashSet <string> {
                    "testParam"
                };
                return(true);
            });
            var searchIndexEntries = new List <SearchIndexEntry> {
                new SearchIndexEntry(new SearchParameter {
                    Name = "testParam"
                }, new ReferenceSearchValue(ReferenceKind.Internal, new Uri("http://localhost"), CompartmentDefinitionManager.CompartmentTypeToResourceType(compartmentType), resourceId))
            };
            CompartmentIndices compartmentIndices = compartmentIndexer.Extract(resourceType, searchIndexEntries);

            IReadOnlyCollection <string> resourceIds = null;

            if (compartmentType == CompartmentType.Device)
            {
                resourceIds = compartmentIndices.DeviceCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Encounter)
            {
                resourceIds = compartmentIndices.EncounterCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Patient)
            {
                resourceIds = compartmentIndices.PatientCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Practitioner)
            {
                resourceIds = compartmentIndices.PractitionerCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.RelatedPerson)
            {
                resourceIds = compartmentIndices.RelatedPersonCompartmentEntry;
            }

            Assert.Single(resourceIds);
            Assert.Contains(resourceId, resourceIds);
        }